Dem Apache-Benutzer www-datamü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/sudoersUm dies zu tun, verwenden Sie sudo visudoin Terminal, es duplizieren (temporäre) sudoersDatei zu bearbeiten.
- Fügen Sie am Ende der Datei Folgendes hinzu: -wenn Sie den Befehl zum
restartRauchen und den phpBefehl 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 restartund phpBefehle mit Superuser-Rechten (root) ausführen möchten. Und Sie verwenden den phpBefehl 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 ALLBefehle, die sehr gefährlich sind.
www-data ALL=NOPASSWD: ALL
3. Nachdem Sie die sudoers-Datei bearbeitet haben (indem Sie die temporäre Datei visudobearbeiten) sudoers, speichern Sie sie und beenden Sie die temporäre Datei (visudo), um sie in die sudoersDatei zu schreiben . ( wq!)
4.Das ist es, benutze jetzt exec()oder shell_execauf die folgende Art und Weise in deinem xxx.phpSkript. Denken Sie daran, sudoden 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