2016-07-22 51 views
0

Ich versuche foo.py von mysite.com/foo.py auszuführen, aber das Skript den Zugriff auf Verzeichnisse erfordert, die normalerweise sudo -i Root-Zugriff ersten erfordern würde. chmod u+s foo.py gibt dem Skript immer noch nicht genügend Berechtigungen. Was kann ich tun, damit das Skript Root-Zugriff hat? Vielen Dank!CGI: Führen Sie Python-Skript als root

+0

Sicherlich haben Sie nur die Berechtigungen des Skripts selbst geändert, was den Zugriff auf das Skript nicht ändern wird. Sie müssen entweder die Berechtigungen des Verzeichnisses, auf das Sie zugreifen möchten, ändern oder sudo in Ihr Skript einbinden. –

+0

Haben Sie gesehen, welcher Benutzer das Skript ausführt? Ich nehme an, dass Sie das von einem Webserver ausführen, also könnte es der Apache-Benutzer oder etwas ähnliches sein. –

+0

Ja, es ist wie Apache, und das ist ein Faktor. Ich habe mein Problem mit dem Verzeichnis/tmp/behoben. Für diejenigen, die über dieses Problem mit etwas Ähnlichem stolpern, würde ich entweder das empfehlen oder Ihre Ausführungsberechtigungen analysieren (für den ausführenden Benutzer, z. B. Apache im Gegensatz zu root). – Answoquest

Antwort

0

Haben Sie versucht chmod 777 foo.py oder chmod +x foo.py? Dies sind im Allgemeinen die Befehle, die verwendet werden, um Dateiberechtigungen für die Ausführung zu erteilen.

+0

Ja, und der Fehler, den ich erhalte, ist/backup/dbbackup/directory ist die Berechtigung, die mir verweigert wird, selbst wenn die Datei perms 4775 ist. – Answoquest

+0

Laufen Sie den Code als sudo? Haben Sie auch versucht, 'sudo nautilus' auszuführen? Auf diese Weise können Sie in die Ordner wechseln und die Berechtigungen einsehen und manuell ändern. –

+0

Da es über HTTP-Anfrage a-la CGI-Lib ausgeführt wird, nein. – Answoquest