Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dodawanie userów do systemu Linux'a
Forum PHP.pl > Forum > PHP
n1k3r
Witam;

Może mi ktoś powiedzieć dlaczego ten kod nie chce mi działać, a nawet nie zwraca mi zadnych errorów smile.gif

  1. <?php
  2.  
  3. $cmdStr = &#092;"/usr/sbin/useradd test2 -u apache -d /home/test2\"; 
  4. shell_exec($cmdStr);
  5.  
  6. ?>


Dodam, że poleceń systemowych nie mam zablokowanych w konfiguracji php.

Za pomoc z góry dziękuje
q
sprobuj zrobic w ten sposob aby polecenie linuksowe bylo wywolywane bez sciezki poczatkowej, czyli

  1. <?php
  2.  
  3. $cmdStr = &#092;"useradd test2 -u apache -d /home/test2\";
  4. shell_exec($cmdStr);
  5.  
  6. ?>


nie potrafie wytlumaczyc czemu tak jest ale mi kiedys pomoglo
n1k3r
Witam;

Mi jednak to nie pomogło sad.gif
dr_bonzo
A probowales to polecenie w shellu uruchomic? zadzialalo?
  1. <?php
  2. $cmdStr = &#092;"/usr/sbin/useradd test2 -u apache -d /home/test2\"; 
  3. $x = shell_exec($cmdStr);
  4. print( $x ); // zobacz co shell wyswietla
  5. ?>
n1k3r
Witam;

eh sorki ...

  1. <?php
  2.  
  3. $cmdStr = &#092;"/usr/sbin/useradd test2 -g apache -d /home/test2\";
  4. shell_exec($cmdStr);
  5.  
  6. ?>


Taki kod w shellu działa poprawnie, jednak w php dalej nie trybi
crash
Apacz z normalnymi usatwieniami miałby dodawać usera? A jeśli już to co to za UID apache?
Vengeance
a masz prawa roota odpalając ten skrypt?
n1k3r
Witam;

Właściciel pliku ustawiony jest jako 'root'
plewa
O ile mi wiadomo polecenia systemowe shella dodaje sie za pomocą nie cudzysłowiu a takiego czegoś. `polecenie` `` Powinno zadziałać. smile.gif
Vengeance
Nie prawda. Tzn tak robisz gdy wynik przypisujesz do zmiennej bodajrze.
Np.
$id = `id`;

Ale on tam wywołuje przecież odpowiednią funkcje
dr_bonzo
Jak wyzej: apache MUSI chodzic na roocie (nie nobody, czy apache) zeby uzyc tego polecenia.
n1k3r
Witam;

Teraz zauważyłem, że w logach samego Apache pokazało się:
"useradd: nie mogę zablokować pliku z hasłami"


kąbinowałem teraz z prawami do /etc/passwd i /etc/shadow ale tez nic ...
Jakieś sugestie?

Próbowałem uruchamiać Apache z prawami root'a ale jakoś sam nie chce się uruchomić.
Vengeance
odpal to z lini komend:
user# php -q /twoj/skrypt.php

bedac zalogowanym jako ROOT a powinno zadzialac ;]
Kocurro
Nie no człowieku, Ty chcesz system na ataki narazić questionmark.gif

Jak się nie znasz na administrowaniu systemem to się nie bierz za takie rzeczy exclamation.gif

Jeśli już koneicznie chcesz to:
1) robisz skrypt shelowy, ktory bedzie za pomoca su logował się na konto roota lub innego usera majacego uprawnienia roota a nastepnie dodawal usera.
2) z php odpalasz ten skrypt.

ALE TO CO CHCESZ ZROBIC TO DZIURA W BEZPIECZENSTWIE I NIC WIECEJ exclamation.gif
Yarecki
Można użyć sudo, lub plik wywoływany przez php ustawić na suid.
Kocurro
ustawienie suid nic nie da !

NIE NA DARMO WBUDOWANO W APACHE I php ZABEZPIECZENIE PRZED DZIAŁAJANIEM JAKO ROOT exclamation.gif

jeśli naprawdę musisz coś zrobić to np. stwórz demona, który będzie rezydował w pamięci i wykonywał takie akcje.

danie jakiemukolwiek skryptowi możliwosci wykonania poleceń roota to jedna wielka dziura exclamation.gif

sam byłem świadkiem gdy php działał niestabilnie gdy nagla pojawiło się od groma zapytań - i niech teraz ktoś wykorzysta tą chwilową niestabilność i dorzuci coś 'od serca' a czeka Cię długa zabawa w reinstalacje systemu !

jeszcze raz powtarzam - jeśli się nie znasz odpowiednio dobrze na Linuxie to nie zabieraj się za takie coś !

a jeśli się znasz, tj. tak uważasz, to lepiej wróć do książki bo gdybyś rzeczywiście się znał to byś wiedział co zrobić !

nie odbierz tego jko ataku - ja po prostu nie chcę byś później miał problemy, sam robiłem tak jak Ty chcesz ale po utracie wszystkich danych zrozumiałem gdzie tkwił błąd.

pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.