Dem Apache-Benutzer www-data
müssen Berechtigungen erteilt werden, um bestimmte Anwendungen mit auszuführen sudo
.
- Führen Sie den Befehl aus
sudo visudo
. Eigentlich wollen wir die Datei in bearbeiten. etc/sudoers
Um dies zu tun, verwenden Sie sudo visudo
in Terminal, es duplizieren (temporäre) sudoers
Datei zu bearbeiten.
- Fügen Sie am Ende der Datei Folgendes hinzu: -wenn Sie den Befehl zum
restart
Rauchen und den php
Befehl für eine andere Aktion in Ihrer Frage verwenden möchten ,
www-data ALL=NOPASSWD: /etc/init.d/smokeping/restart, usr/bin/php
(Dies setzt voraus, dass Sie ausführen restart
und php
Befehle mit Superuser-Rechten (root) ausführen möchten. Und Sie verwenden den php
Befehl im usr/bin/
Pfad.)
Wenn Sie jedoch jede Anwendung mit Superuser-Rechten ausführen möchten, fügen Sie Folgendes anstelle der oben genannten hinzu. Möglicherweise möchten Sie dies nicht tun, nicht für ALL
Befehle, die sehr gefährlich sind.
www-data ALL=NOPASSWD: ALL
3. Nachdem Sie die sudoers-Datei bearbeitet haben (indem Sie die temporäre Datei visudo
bearbeiten) sudoers
, speichern Sie sie und beenden Sie die temporäre Datei (visudo), um sie in die sudoers
Datei zu schreiben . ( wq!
)
4.Das ist es, benutze jetzt exec()
oder shell_exec
auf die folgende Art und Weise in deinem xxx.php
Skript. Denken Sie daran, sudo
den Befehl vor der Verwendung im PHP-Skript zu verwenden.
Ex:-
exec ("sudo /etc/init.d/smokeping restart 2>&1");
oder
shell_exec("sudo php -v");
Fügen Sie also in Ihrem Problem die Befehle hinzu, die Sie beim Hinzufügen verwenden möchten, step no (2.)
und ändern Sie Ihr PHP-Skript nach Ihren Wünschen .
Hier ist das gleiche Problem wie bei Ihnen /programming//a/22953339/1862107