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
sudosem 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).