Ho bisogno di sudo senza richiesta di password, per gli script. Dove ho sbagliato?


9

Sono nel gruppo sudo, va bene:

$ id
uid=1002(molot) gid=1002(molot) groups=1002(molot),27(sudo),33(www-data)

Nei miei sudores mi sembra di avere l'impostazione appropriata:

sudo    ALL=(ALL:ALL) NOPASSWD: ALL

ed è l'ultima riga non commentata lì.

Ma quando provo a farlo git pull, aspiro a digitare nuovamente la mia password:

$ sudo -u www-data git --git-dir /var/www/.git --work-tree /var/www pull "origin" master
[sudo] password for molot:

Non è un problema quando accedo alla console, ma è inaccettabile negli script. Quindi, come posso consentire a chiunque nel gruppo sudo di eseguire il pull come dati www senza dover riscrivere la password?

Quando inserisco direttamente il mio nome:

molot ALL=(ALL) NOPASSWD: ALL

per me funziona. Ma, ovviamente, non per marian o altri utenti del gruppo sudo. Per quanto ho capito manuale , sia i nomi utente che i nomi dei gruppi dovrebbero funzionare nel primo file.


Si può non sudo -u www-data ./your_script.sh? Qual è lo scopo della sceneggiatura?
jimbobmcgee,

@jimbobmcgee è un hook git, quindi no, non posso anteporre nulla ad esso. Viene chiamato dall'utente che ha spinto le modifiche git e non ho trovato alcun modo per aggirarlo.
Mołot,

Il primo campo (se la mia rapida comprensione del sudoersformato del file è corretto) è il nome utente dell'utente che invoca. Hai provato a sostituirlo con il carattere jolly *o con quale utente git hook funziona?
un CVn il

@ MichaelKjörling come indicato qui dovrebbe essere possibile scrivere sia gli utenti che i gruppi nel primo campo. *non funziona. Mettere il mio nome funziona direttamente per me ... ma non per altri utenti nel gruppo sudo, ovviamente.
Mołot,

@ MichaelKjörling grazie, il tuo commento mi ha spinto a cercare caratteri speciali e mi ha permesso di trovare una risposta: D Modifica: risposta automatica eliminata e risposta di terze parti accettata dallo stesso momento.
Mołot,

Risposte:


19

Sembra che tu abbia la linea pertinente nei tuoi sudoer in cui manca un personaggio:

sudo ALL = (ALL: ALL) NOPASSWD: ALL

corrisponde a un utente chiamato "sudo". Per "tutti gli utenti del gruppo sudo" dovrebbe essere:

% sudo ALL = (ALL: ALL) NOPASSWD: ALL

(notare il segno% all'inizio).


1
Ah ed è quello che l' %in %wheelsignificava.
nikhil,

1

sudo visudo

Quindi, supponendo che molotsia il tuo nome utente, vai alla fine del file e:

molot ALL=(ALL) NOPASSWD: ALL

Dovrebbe funzionare, ma in caso contrario, tienici aggiornati.


Questo funziona Per me. Ma, ovviamente, non per Marian o altri utenti nel gruppo sudo.
Mołot,

Quindi creare gli alias utente ( User_Alias) e dare il permesso di eseguire comandi specifici come root ( Runas_Alias). Non so come sia configurato il tuo gruppo, puoi dare un'occhiata alla wiki di Sudoers help.ubuntu.com/community/Sudoers È davvero conciso. Controlla la sezione "Specifiche dell'utente", questo dovrebbe aiutare.
Jugurtha Hadjar,
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.