Heim > Artikel > Backend-Entwicklung > Wie kann ich SUDO-erfordernde Shell-Skripte von PHP aus ohne Passwortabfrage ausführen?
Aufrufen von Shell-Skripten, die SUDO erfordern, von PHP
Das Ausführen von Shell-Skripten, die erhöhte Berechtigungen erfordern, z. B. solche, die SUDO erfordern, kann in diesem Fall eine Herausforderung sein Aufrufen über die Shell_exec-Funktion von PHP. Standardmäßig verfügt Shell_exec nicht über die erforderlichen Berechtigungen, um die Passwortabfrage zu umgehen.
Lösung: Sudoers-Datei ändern
Um dieses Problem zu beheben, können Sie die Sudoers ändern Datei (über visudo zugänglich), um dem Webserver-Benutzer (z. B. www-data) die Berechtigung zu erteilen, das Skript ohne Passwort auszuführen. Hier ist eine Beispielregel, die der sudoers-Datei hinzugefügt werden kann:
www-data ALL=NOPASSWD: /path/to/script
Diese Regel ermöglicht es dem Benutzer www-data, das Skript /path/to/script auszuführen, ohne ein Passwort anzugeben. Sobald die Sudoers-Datei aktualisiert ist, können Sie das Skript wie gewohnt von PHP aus mit Shell_exec aufrufen.
<?php $output = shell_exec('/path/to/script'); ?>
Achtung: Das Erteilen übermäßiger Berechtigungen in der Sudoers-Datei kann die Systemsicherheit gefährden. Stellen Sie sicher, dass Sie nur notwendige Regeln hinzufügen und den Umfang der gewährten Berechtigungen minimieren.
Das obige ist der detaillierte Inhalt vonWie kann ich SUDO-erfordernde Shell-Skripte von PHP aus ohne Passwortabfrage ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!