Użytkownik Apache www-data
musi mieć uprawnienia do wykonywania niektórych aplikacji przy użyciu sudo
.
- Uruchom polecenie
sudo visudo
. W rzeczywistości chcemy edytować plik w. etc/sudoers
Aby to zrobić, używając sudo visudo
terminala, powiela sudoers
plik (temp) do edycji.
- Na końcu pliku dodaj następujący przykład: -Jeśli chcemy użyć polecenia do
restart
zadymienia i php
polecenia innej akcji w pytaniu,
www-data ALL=NOPASSWD: /etc/init.d/smokeping/restart, usr/bin/php
(Zakłada się, że chcesz uruchamiać restart
i wykonywać php
polecenia przy użyciu uprawnień superużytkownika (root). Używasz php
polecenia na usr/bin/
ścieżce)
Jeśli jednak chcesz uruchamiać każdą aplikację przy użyciu uprawnień superużytkownika, dodaj następujące elementy zamiast powyższych. Nie możesz tego robić, nie dla ALL
poleceń, bardzo niebezpieczne.
www-data ALL=NOPASSWD: ALL
3. Po edycji pliku sudoers ( visudo
edytujemy plik tymczasowy, sudoers
więc zapisz i zamknij plik tymczasowy (visudo), aby zapisać w sudoers
pliku. ( wq!
)
4.Oto, użyj teraz exec()
lub shell_exec
w następujący sposób w xxx.php
skrypcie. pamiętaj, aby użyć sudo
przed użyciem polecenia w skrypcie php.
dawny:-
exec ("sudo /etc/init.d/smokeping restart 2>&1");
lub
shell_exec("sudo php -v");
Tak więc w swoim problemie dodaj polecenia, których chcesz używać step no (2.)
, dodając i zmieniając skrypt php, jak chcesz.
tutaj jest ten sam problem, co twój /programming//a/22953339/1862107