Adiciona um sudoer não interativamente da linha de comando

5

(no Centos através do Docker)

Eu sei que posso adicionar um sudoer usando visudo . Existe uma maneira de adicionar um usuário à lista de sudoer diretamente da linha de comando, para que eu não precise fazer isso interativamente?

Estou perguntando porque estou tentando provisionar meu contêiner centos do Docker que não funciona com interatividade.

    
por Roy Truelove 16.06.2014 / 19:04

6 respostas

3

Você pode usar cat para anexar texto ao final de /etc/sudoers . Primeiro, faça uma cópia de backup do seu arquivo /etc/sudoers . Então:

cat >> /etc/sudoers
...type one or more lines here...
[control-D]

Certifique-se de usar dois caracteres maiores que% ( >> ) e não apenas um, senão você sobrescreverá todo o conteúdo do seu arquivo.

    
por 16.06.2014 / 19:29
6

Eu tive um problema semelhante ao tentar fazer com que meu contêiner do Docker permitisse que os scripts do Jenkins usassem comandos do sudo sem solicitar uma senha.

Isso foi resolvido por meio do Dockerfile:

RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
    
por 16.11.2016 / 21:10
2

Para fazer isso, verifique se você tem a seguinte linha no seu arquivo sudoers :

%sudo   ALL=(ALL:ALL) ALL

Você pode personalizar a linha acima para alterar as permissões como se %sudo fosse um usuário. Essa linha permitirá que qualquer usuário no grupo sudo use sudo .

Agora, para permitir que <username> use sudo , você pode fazer apenas usermod -a -G sudo <username> como root, o que adiciona <username> ao grupo sudo .

    
por 16.06.2014 / 19:25
0

Você pode começar ativando o grupo 'wheel' em sudoers e depois só precisa adicionar usuários a esse grupo. Evita a convolução do arquivo sudoers.

    
por 17.06.2014 / 06:29
0

No momento da criação do usuário, você pode especificar que o usuário alguém pertence ao grupo sudo dessa maneira:

useradd --groups sudo someone

Se já for um usuário existente, você poderá adicioná-lo a um novo grupo desta forma:

gpasswd --add someone sudo

Veja esta resposta se você quiser saber porque eu prefiro gpasswd to usermod .

    
por 05.03.2018 / 02:42
0

Um arranjo comum para anexar arquivos que requerem acesso privilegiado é usar tee . Seu objetivo principal, é claro, é escrever em dois lugares, mas você pode descartar um deles e usar o efeito colateral que sudo tee -a fornece a você.

Então, algo como

printf 'you ALL=(ALL:ALL) ALL\n' | sudo tee -a /etc/sudoers >/dev/null

Concordo com os comentários para adicionar o usuário ao grupo sudoers para resolver esse problema específico.

    
por 05.03.2018 / 04:49