Ich habe ein Skript script.py, die ich über CGI ausführen kann, indem Sie zu mydomain.com/runscript navigieren.Ausführen von Skript erfordern root-Zugriff über CGI
Das Skript sendet jedoch einen Unterprozessaufruf an echo "mysqldump ..." | sudo -i und sudo python mit os.system (COMMAND). Wenn ich versuche, das Skript über den Weblink zu laufen, bekomme ich diesen Fehler in /var/log/apache2/error.log:
[Fr 29 Jul 16: 52: 42,515223 2016] [cgi: error ] [pid 3013] [client ## ### ## ##... #####] AH01215: sudo: keine tty vorhanden und kein askpass Programm angegeben
Dies liegt daran, CGI läuft als Benutzer www-Daten, die keine sudo-Berechtigung hat.
Ich habe versucht, diese zu meinen sudoers Datei:
%www-data ALL = (root) NOPASSWD: /var/www/html/scripts/script.py
jedoch die Fehler bestehen bleiben. Warum erhalten die Subprozessaufrufe keinen Root-Zugriff und wie kann ich sie ihnen und NUR ihnen geben? Vielen Dank!