Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Funkcja exec
Forum PHP.pl > Forum > Przedszkole
piter3
Witam. Chciał bym z poziomu przeglądarki wykonać zmianę hasła dla usera linuxa
w trybie konsoli wystarczy wpisać
user:pass | chpasswd
i wszystko działa
z poziomu przeglądarki próbowałem w ten sposób

$pass = "hasło roota";
$user = "user:nowe haslo";
exec("echo $pass|sudo $user|chpasswd");

i co prawda błędów nie wywala ale hasła nie zmienia
jeśli ktoświe jak to poprawnie zapisać to będe wdzięczny.
Z góry dzięki
mrjozo
Hmmm..

Twój kod w zasadzie nie wywołuje polecenia zmiany hasła tylko wypisanie na ekranie, bo używasz "echo"

Nie ma możliwości w taki sposób wstawienia hasła do sudo.

Jeśli chcesz wykonywać polecenia z uprawnieniami roota, musisz wyedytować plik /ets/sudoers i dodać tam linijke:

Kod
apacheusername ALL=(root) NOPASSWD: /usr/bin/php -f /sciezka/do/pliku/php


wtedy podany plik php bedzie mial uprawnienia roota i mozesz wykonac polecenie:

  1. <?php
  2. exec("$user:$pass|chpasswd");
  3. ?>


hasło roota można wprowadzić używając np. czegoś takiego: http://expect.nist.gov/

jednak hasło przesyłane nie będzie kodowane, chyba, że użyjesz ssh

pomimo wszystko wykonywanie takich poleceń przez php nie jest bezpieczne
piter3
No nie do końca się zgadzam. Próbuję to w ten sposób ponieważ udało mi się zrobić zmianę nazwy użytkownika takim oto kodem.

  1. <?php
  2. $user = "usermod -l ".$nowylogin." ".$starylogin;
  3. exec("echo $hasloroot|sudo $user");
  4. ?>


i wszystko działa więc chyba jednak jest możliwe smile.gif
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.