Execução de comandos com Sudo


Por motivos de segurança, em alguns casos, os administradores de sistema configuram o usuário root para não ter uma senha válida. Assim, os usuários não podem fazer login no sistema como root diretamente com uma senha. Além disso, você não pode usar su para obter um shell interativo. Nesse caso, você pode usar o comando sudo para obter acesso root.

Diferentemente do comando su, o sudo normalmente exige que os usuários informem sua própria senha para autenticação, não a senha da conta de usuário que estão tentando acessar. Ou seja, os usuários que usam o comando sudo para executar comandos como root não precisam saber a senha de root. Em vez disso, eles usam suas próprias senhas para autenticar o acesso.

A próxima tabela resume as diferenças entre os comandos su, su - e sudo:

Além disso, você pode configurar o comando sudo para permitir que usuários específicos executem qualquer comando como outro usuário ou apenas alguns comandos como esse usuário. Por exemplo, se você configurar o comando sudo para permitir que o usuário user01 execute o comando usermod como root, você poderá executar o seguinte comando para bloquear ou desbloquear uma conta de usuário:

[user01@host ~]$ sudo usermod -L user02
[sudo] password for user01: user01_password
[user01@host ~]$ su - user02
Password: user02_password
su: Authentication failure
[user01@host ~]$

Se um usuário tentar executar um comando como outro usuário e a configuração sudo não permitir, o bash bloqueia o comando, registra a tentativa e, por padrão, envia um e-mail ao usuário root.

[user02@host ~]$ sudo tail /var/log/secure
[sudo] password for user02: user02_password
user02 is not in the sudoers file.  This incident will be reported.
[user02@host ~]$

Outro benefício de sudo é registrar por padrão todos os comandos executados em /var/log/secure.

[user01@host ~]$ sudo tail /var/log/secure
...output omitted...
Mar  9 20:45:46 host sudo[2577]:  user01 : TTY=pts/0 ; PWD=/home/user01 ; USER=root ; COMMAND=/sbin/usermod -L user02
...output omitted...

No Red Hat Enterprise Linux 7 e versões posteriores, todos os membros do grupo wheel podem usar sudo para executar comandos como qualquer usuário, incluindo root, usando suas próprias senhas.

Nota

Historicamente, sistemas do UNIX usam a associação ao grupo wheel para conceder ou controlar o acesso de superusuário. O RHEL 6 e as versões anteriores não concedem ao grupo wheel privilégios especiais por padrão. Os administradores de sistema que usaram anteriormente esse grupo para uma finalidade não padrão devem atualizar uma configuração anterior, para evitar que usuários inesperados e não autorizados obtenham acesso administrativo no RHEL 7 e sistemas posteriores.

Referências