Melhor maneira adicionar o usuário vagabundo NOPASSWD?

7

Qual é a melhor maneira de adicionar o NOPASSWD ao usuário vagabundo?

Caminho 1:

groupadd -r admin
usermod -a -G admin vagrant
cp /etc/sudoers /etc/sudoers.orig
sed -i -e '/Defaults\s\+env_reset/a Defaults\texempt_group=admin' /etc/sudoers
sed -i -e 's/%admin ALL=(ALL) ALL/%admin ALL=NOPASSWD:ALL/g' /etc/sudoers 

Caminho 2:

# Set up sudo
echo %vagrant ALL=NOPASSWD:ALL > /etc/sudoers.d/vagrant
chmod 0440 /etc/sudoers.d/vagrant
# Setup sudo to allow no-password sudo for "sudo"
usermod -a -G sudo vagrant

ou talvez haja ainda melhor?

    
por Kratos 17.01.2014 / 10:18

2 respostas

10

Considerações sobre a edição de sudoers files

Editar manualmente o arquivo que você está criando ou modificando às vezes é preferível à edição com echo ... > ou sed - especialmente sed , a menos que você seja extremamente competente. Isso porque mostra mais claramente o impacto de suas alterações e porque, para um arquivo que você não está realmente criando (como sudoers em "Way 1"), abrir o arquivo em um editor de texto mostra outros conteúdos de o arquivo que pode ser relevante. Geralmente, você deve entender sua configuração atual antes de fazer alterações e ler qualquer arquivo de configuração que esteja editando às vezes é útil para esse fim.

No entanto, mais importante, um pequeno erro ao editar o arquivo /etc/sudoers ou qualquer em /etc/sudoers.d faz com que sudo se recusem a trabalhar totalmente até que o probem seja corrigido.

Para sistemas desktop Ubuntu, mas não a maioria dos sistemas de servidor, há uma correção relativamente fácil para isso ; caso contrário, talvez seja necessário inicializar no modo de recuperação ou em um CD / DVD / USB ativo para corrigir o problema de ser impedido de executar ações administrativas.

De qualquer forma, você deve usar visudo para editar /etc/sudoers e quaisquer arquivos em /etc/sudoers.d .

Para /etc/sudoers : sudo visudo

Para um arquivo em /etc/sudoers.d chamado vagrant : sudo visudo /etc/sudoers.d/vagrant

visudo edita um arquivo temporário e, uma vez que você tenha saído, verifica sua sintaxe para garantir que está correto antes de copiar o arquivo temporário para o arquivo de configuração real.

Por causa deste mecanismo, se você quiser usar terminais de uma linha em vez de um editor de texto , você deve ser capaz de usar visudo em conexão com sed ou algum mecanismo semelhante a canos (como tee ) para editar sudoers arquivos com segurança de maneira comparável ao que você usou em "Caminho 1" e "Caminho 2.

Talvez outra pessoa publique uma resposta detalhando como fazer isso; se não, então da próxima vez que eu tiver acesso a uma máquina adequada para esse teste, posso tentar descobrir isso e expandir essa resposta com um exemplo. Como alternativa, usar sed ou echo com segurança para criar / modificar a configuração sudoers e sudoers.d pode ser considerado o assunto de uma questão separada . Isto é especialmente o caso se o seu principal interesse aqui é se dar poder de sudo-to-root NOPASSWD diretamente ou através de associação de grupo.

Conferindo poder de sudo para root por associação de grupo vs. por usuário

A principal diferença entre "Way 1" e "Way 2" é:

  • "Way 1" torna o usuário um administrador e confere aos administradores a capacidade de executar comandos como root com sudo sem que seja solicitada uma senha.
  • "Caminho 2" confere essa capacidade especificamente ao único usuário.

A menos que você deseje que todos administradores possam fazer sudo-to-root sem uma senha (por padrão, é necessário digitar uma senha), "Way 2" é preferível.

No entanto, qualquer usuário que você queira poder executar comandos arbitrários como root provavelmente deve ser também administrador! (Isso permitirá que usem pkexec e evite confusão se você ou um associado estiver tentando descobrir quem são todos os usuários com a capacidade de executar tarefas de administração do sistema.)

Portanto, a melhor coisa a fazer pode ser adicionar vagrant como administrador e separadamente conferir NOPASSWD habilidades a vagrant especificamente (e < em> não para administradores em geral).

    
por Eliah Kagan 17.01.2014 / 10:37
3

Por favor, remova "%" do seu caminho 2, ele não funcionou, já que "vagrant" é um usuário e não um grupo, a linha a ser substituída é -

echo vagrant ALL=NOPASSWD:ALL > /etc/sudoers.d/vagrant
    
por vivekyad4v 25.10.2016 / 10:26