Para operações básicas - executando comandos como root - a diferença mais visível entre sudo e su é que sudo requer a senha do usuário chamador (ie sua senha) enquanto su requer a senha do usuário alvo (ie a senha root) . As implicações de segurança foram discutidas extensivamente em uma pergunta anterior: Qual é a maneira mais segura de obter privilégios de root: sudo, su ou login? .
O Sudo tem recursos adicionais além do su. Em particular, depois de ter a senha de um usuário, você pode executar qualquer comando como esse usuário. Por outro lado, o sudo pode ser configurado para que o usuário que o invoca possa executar comandos específicos apenas como outro usuário. Isso é possível porque o sudo não requer nenhuma autenticação (além de talvez confirmar que você está digitando sua senha - mas isso é sutilmente diferente de autenticar seu usuário para uma tarefa).
Você pode alterar a configuração do sudo executando o comando visudo
como root (nunca edite a configuração diretamente). Certifique-se de que a variável de ambiente EDITOR
ou VISUAL
esteja definida para o seu editor favorito ou você pode obter um editor desconhecido. A sudoers
man page é um pouco concisa, mas tem exemplos. Para permitir que o usuário bob
execute /bin/foo
(com qualquer número de argumentos) e /bin/bar --safe
(mas não com qualquer outro argumento) como root
, use as seguintes linhas:
bob ALL = (root) /bin/foo
bob ALL = (root) /bin/bar --safe