Erlaube dem Benutzer 'git', 'git pull' als 'www-data' über sudo auszuführen

12

Ich möchte git erlauben, 'git pull' als Benutzer 'www-data' auszuführen. Soweit ich weiß, sollte git ALL = (www-data) git pull in / etc / sudoers es schaffen.

Leider erhalte ich einen Syntaxfehler für diese Zeile und das Visudo-Syntax-Highlight wird direkt nach dem "-" in 'www-data' unterbrochen.

Informationen zu verbotenen '-' in / etc / sudoers Benutzernamen können nicht gefunden werden. Irgendwelche Tipps?

Ben
quelle

Antworten:

11

Sie müssen den vollständigen Pfadnamen für den Befehl 'git' verwenden. Die folgenden Zeilen erzeugen in visudo keinen Syntaxfehler und funktionieren einwandfrei.

git ALL = (www-data) /usr/bin/git pull

AlexD
quelle
6
@ Ben und du hast nicht geteilt?
Agrublev
9

Beachten Sie, dass ich den Git- Benutzernamen verwende. Wenn Sie also Gitosis oder einen anderen Benutzernamen verwenden, geben Sie einfach Ihren ein!

Führen Sie in der Konsole mit Root- Benutzer diesen Befehl aus:

visudo

Der "vi" -Editor wird geöffnet. Fügen Sie diese Zeilen hinzu:

Defaults:git    !authenticate
git ALL=(www-data) ALL

Im Ergebnis sollte die Datei (die im "vi" -Editor durch Aufrufen von "visudo" geöffnet wird) folgendermaßen aussehen:

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults    env_reset
Defaults:git    !authenticate

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL
git ALL=(www-data) ALL


# Allow members of group sudo to execute any command
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d

Drücken Sie dann STRG + O, um die Datei zu speichern, und drücken Sie die Eingabetaste, um den Dateinamen (bla bla bla) zu akzeptieren. Drücken Sie dann STRG + X, um den "vi" -Editor zu schließen.

Voila! Jetzt kann der Git- Benutzer Befehle als WWW-Datenbenutzer ausführen :

sudo -u www-data git pull origin master
Taai
quelle