Existem duas maneiras (principais) de autorizar um usuário a executar comandos como root via sudo:
- declara que “Alice pode executar comandos como root”;
- declara que “Alice é um administrador de sistema” e que “os administradores de sistema podem executar comandos como root”.
A maneira de declarar "Alice é um administrador de sistema" é torná-la membro do grupo sysadmins, mas não há um nome padrão para o grupo sysadmins (nem qualquer obrigação de que exista um grupo de administradores de sistema). Alguns sistemas Unix tradicionais têm um grupo chamado wheel
, 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 o utiliza, em particular). Algumas distribuições, como Ubuntu e Debian, incluem um grupo chamado sudo
e uma regra "membros do grupo sudo
podem executar o comando 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
, você poderá tornar um usuário um sudoer adicionando-o ao grupo sudo
( adduser alice sudo
). O nome sudo
não é mágico, você só precisa igualar a entrada em /etc/sudoers
.
Nunca edite /etc/sudoers
(ou um arquivo em /etc/sudoers.d
) diretamente: se você cometer um erro de sintaxe, bloquearia o acesso root. Sempre use visudo
para editar esse arquivo. Para escolher o editor que visudo
é executado, defina a variável de ambiente VISUAL
(ou EDITOR
, contanto que VISUAL
não esteja definido). Em uma máquina multiusuário, usar visudo
tem a vantagem adicional de cuidar do bloqueio no caso de dois administradores editarem o arquivo ao mesmo tempo.