Consenti all'utente 'git' di eseguire 'git pull' come 'www-data' tramite sudo


12

Vorrei consentire a git di eseguire "git pull" come utente "www-data". Per quanto ho capito git ALL = (www-data) git pull in / etc / sudoers dovrebbe farlo.

Purtroppo ho ricevuto un errore di sintassi per questa riga e l'evidenziazione della sintassi visudo si interrompe subito dopo il "-" in "www-data"

Non è possibile trovare informazioni relative a "-" vietato nei nomi utente / etc / sudoers. Qualche consiglio?

Risposte:


11

Devi usare il nome completo del percorso per il comando 'git', le seguenti righe non producono errori di sintassi in visudo e funzionano bene.

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


6
@Ben e non hai condiviso?
agrublev,

9

Nota che sto usando git username, quindi, se stai usando gitosis o qualsiasi altro nome utente, compila il tuo!

In console con l' utente root, eseguire questo comando:

visudo

Verrà aperto l'editor "vi". Aggiungi queste righe:

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

Di conseguenza il file (che si apre nell'editor "vi" chiamando "visudo") dovrebbe apparire così:

# /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

Quindi premere CTRL + O per salvare il file, quindi premere Invio per accettare il nome file (bla bla bla), quindi premere CTRL + X per chiudere l'editor "vi".

Ecco! Ora git user può eseguire comandi come utente www-data :

sudo -u www-data git pull origin master
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.