Eu preciso do sudo sem solicitação de senha, para scripts. Onde foi que eu errei?


9

Estou no grupo sudo certo:

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

Nos meus sudoresos, pareço ter uma configuração apropriada:

sudo    ALL=(ALL:ALL) NOPASSWD: ALL

e é a última linha não comentada lá.

Mas, quando tento git pull, sou solicitado a redigitar minha senha:

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

Não é um problema quando estou conectado ao console, mas é inaceitável nos scripts. Então, como posso permitir que qualquer pessoa no grupo sudo git pull como www-data sem redigitar a senha?

Quando eu coloco meu nome diretamente:

molot ALL=(ALL) NOPASSWD: ALL

funciona para mim. Mas, obviamente, não para usuários marianos ou outros do grupo sudo. Tanto quanto eu entendi manual , nomes de usuário e nomes de grupos devem funcionar no primeiro arquivo.


Você não pode sudo -u www-data ./your_script.sh? Qual é o propósito do script?
precisa saber é o seguinte

@jimbobmcgee é um gancho git, então não, não posso acrescentar nada a ele. É chamado pelo usuário que pressionou as alterações do git e não encontrei nenhuma maneira real de contornar isso.
Mołot

O primeiro campo (se meu entendimento rápido do sudoersformato do arquivo estiver correto) é o nome de usuário do usuário que está chamando. Você já tentou substituí-lo pelo curinga *ou por qual usuário o gancho git é executado?
um CVn

@ MichaelKjörling como indicado aqui , deve ser possível escrever usuários e grupos no primeiro campo. *não funciona. Colocar meu nome funciona diretamente para mim ... mas não para outros usuários do grupo sudo, obviamente.
Mołot

@ MichaelKjörling obrigado, seu comentário me fez procurar caracteres especiais e me permitiu encontrar uma resposta: D Editar: resposta automática excluída e resposta de terceiros aceita no mesmo momento.
Mołot

Respostas:


19

Parece que você tem a linha relevante em seus sudoers com falta de um personagem:

sudo ALL = (ALL: ALL) NOPASSWD: ALL

corresponde a um usuário chamado 'sudo'. Para 'todos os usuários do grupo sudo', deve ser:

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

(observe o sinal de% no início).


11
Ah então é isso que o %no %wheelsignificava.
Nikhil 24/04

1

sudo visudo

Supondo que molotseja seu nome de usuário, vá para o final do arquivo e:

molot ALL=(ALL) NOPASSWD: ALL

Isso deve funcionar, mas se não funcionar, mantenha-nos informados.


Isso funciona. Para mim. Mas, obviamente, não para marian ou qualquer outro usuário no grupo sudo.
Mołot

Em seguida, crie aliases de usuário ( User_Alias) e dê permissão para executar comandos específicos como root ( Runas_Alias). Não sei como o seu grupo está configurado, você pode conferir o wiki do Sudoers help.ubuntu.com/community/Sudoers É realmente conciso. Verifique a seção "Especificações do usuário", isso deve ajudar.
Jugurta Hadjar
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.