
Até agora encontrei quatro maneiras diferentes de adicionar um usuário ao grupo sudoers e nem todos os métodos funcionam em todos os sistemas. Por que tantas implementações diferentes? O que é melhor? Qual é o padrão (ou seja, funciona na maioria dos sistemas)?
Diferentes implementações:
- Adicionando o usuário ao grupo 'wheel'.
- Adicionando o usuário ao grupo 'sudo'.
- Editando o arquivo /etc/sudoers
- Editando o arquivo /etc/sudoers usando visudo
Responder1
Existem duas maneiras (principais) de autorizar um usuário a executar comandos como root via sudo:
- declare que “Alice pode executar comandos como root”;
- declare que “Alice é uma administradora de sistema” e que “administradores de sistema podem executar comandos como root”.
A maneira de declarar “Alice é uma administradora de sistemas” é torná-la membro do grupo sysadmins, mas não existe um nome padrão para o grupo sysadmins (nem qualquer obrigação de que exista um grupo sysadmins). Alguns sistemas Unix tradicionais possuem um grupo chamadowheel
, mas muitas vezes estar no grupo wheel é apenas um pré-requisito para se tornar root, e o usuário também deve saber a senha do root e executar su
(é assim que o BSD a usa, em particular). Algumas distribuições, como Ubuntu e Debian, incluem um grupo chamado sudo
e uma regra “membros do grupo sudo
podem executar comandos como root” em sua configuração padrão.
Se /etc/sudoers
(ou um arquivo em /etc/sudoers.d
) contiver uma linha como %sudo ALL=(ALL:ALL) ALL
, então você pode tornar um usuário um sudoer adicionando-o ao sudo
grupo ( adduser alice sudo
). O nome sudo
não é mágico, você só precisa corresponder à entrada em /etc/sudoers
.
Nunca edite /etc/sudoers
(ou um arquivo sob /etc/sudoers.d
) diretamente: se você cometer um erro de sintaxe, você ficará sem acesso root. Sempre use visudo
para editar esse arquivo. Para escolher o editor que visudo
será executado, defina a VISUAL
variável de ambiente (ou EDITOR
, desde que VISUAL
não esteja definida). Em uma máquina multiusuário, o uso visudo
tem a vantagem adicional de cuidar do bloqueio caso dois administradores editem o arquivo ao mesmo tempo.
Responder2
adduser username sudo
funciona para mim - mas eu uso o Debian, que possui um arquivo cujo padrão é dar acesso sudo sudoers
a todos no grupo.sudo
Responder3
Pois Ubuntu
adicionei <somefile>
at /etc/sudoers.d/
com a linha:
<user> ALL=(ALL:ALL) ALL
Usando o comando:
visudo -f /etc/sudoers.d/<somefile>
Isso é recomendado porque deixa o /etc/suoders
arquivo intacto e, portanto, evita conflitos (e a resolução manual subsequente necessária) entre atualizações. Ver:Por que /etc/sodoers.d/
Responder4
Os métodos 2 e 4 funcionarão em quase todos os Linux. Nem tente usar 3 no sistema em funcionamento! Isso pode danificar o sistema. O método 1 pode funcionar, mas não é necessário.
Por que você deve usar o visudo em vez de editar manualmente o /etc/sudoers?
Depois de obter acesso root, usei o visudo para corrigir o arquivo sudoers. Por que visual? Porque esse é o programa que VOCÊ DEVE USAR. Sim, estou um pouco zangado, porque a pessoa que quebrou este servidor deveria saber disso. Visudo é um pequeno programa adorável que verifica a sintaxe do arquivo sudoers antes de salvá-lo, para que, se você fizer algo extremamente estúpido, você saberá sobre isso antes que se torne um problema e evite que você volte ao sistema como root.
http://lickthesalt.com/2009/07/06/fail-why-you-should-always-use-visudo/