Użytkownik Apache www-datamusi mieć uprawnienia do wykonywania niektórych aplikacji przy użyciu sudo.
- Uruchom polecenie
sudo visudo. W rzeczywistości chcemy edytować plik w. etc/sudoersAby to zrobić, używając sudo visudoterminala, powiela sudoersplik (temp) do edycji.
- Na końcu pliku dodaj następujący przykład: -Jeśli chcemy użyć polecenia do
restartzadymienia i phppolecenia innej akcji w pytaniu,
www-data ALL=NOPASSWD: /etc/init.d/smokeping/restart, usr/bin/php
(Zakłada się, że chcesz uruchamiać restarti wykonywać phppolecenia przy użyciu uprawnień superużytkownika (root). Używasz phppolecenia 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 ALLpoleceń, bardzo niebezpieczne.
www-data ALL=NOPASSWD: ALL
3. Po edycji pliku sudoers ( visudoedytujemy plik tymczasowy, sudoerswięc zapisz i zamknij plik tymczasowy (visudo), aby zapisać w sudoerspliku. ( wq!)
4.Oto, użyj teraz exec()lub shell_execw następujący sposób w xxx.phpskrypcie. pamiętaj, aby użyć sudoprzed 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