Ubuntu, Apache - Sudoers Problem

1089
tanon

Ich muss ein Skript über PHP (php5.xx) ausführen, der Server läuft mit apache2 (Ubuntu 10.04). Das Skript muss als anderer Benutzer ausgeführt werden.

Ich habe folgende Zeilen hinzugefügt /etc/sudoers:

Cmnd_Alias SECURE_SVN_UPDATE = /path_to_script/just_svn_update.sh #www-data ALL=(ALL,!root,!#0) NOPASSWD: SECURE_SVN_UPDATE www-data ALL=(ALL) NOPASSWD: SECURE_SVN_UPDATE 

(Ich habe beide Zeilen ausprobiert)

Und in PHP rufe ich an

exec("sudo -u theuser SECURE_SVN_UPDATE")

Ich bekomme den Fehler

sudo: no tty present and no askpass program specified

Ich habe versucht zu setzen

Defaults visiblepw

In der sudoersDatei, aber danach, wenn Sie den Befehl von PHP ausführen, wird ein Fehler angezeigt:

sudo: 3 incorrect password attempts.

Kann mir bitte jemand sagen, wie ich dieses Problem oder eine Methode beheben kann, um dies zu erreichen, ohne die Sicherheit zu beeinträchtigen. (Ich möchte, dass Apache nur dieses Skript als einen anderen Benutzer ausführen kann, sonst nichts).

0

1 Antwort auf die Frage

0
Karlson

Anstatt zu versuchen, eine Datei auszuführen, führen Sie einen Apache für einen bestimmten virtuellen Host als Benutzer aus, der das Recht haben soll, den Quellcode zu aktualisieren, den Sie herunterziehen möchten.

Dieser Link bezieht sich auf die Art und Weise, wie der Benutzer http://httpd.apache.org/docs/current/mod/mpm_common.html#user festgelegt wird

Zweitens, wenn ich richtig verstehe, was Sie zu tun versuchen: Sie haben einen Webserver aus der Ferne. Sie möchten sich anmelden und den aktualisierten Code von SVN abrufen lassen. Normalerweise erfordern die Bereitstellungsmethoden einen praktischen Ansatz wie rsync, FTP oder SFTP / SCP-Push.