A maior diferença é que sudo
você não precisa da senha de root para executar um comando como root, como faria su
. Você precisa da senha root para adicionar alguém ao sudoers
arquivo, mas, posteriormente, essa pessoa poderá executar todos ou alguns (se você o tiver restringido) como root sem precisar de uma senha adicional.
A outra diferença é, como você observou, sudo
permite um controle muito mais preciso sobre exatamente quais comandos podem ser executados.
Para detalhes do formato do sudoers
arquivo, execute man sudoers
. Você encontrará exemplos de permitir que apenas determinados comandos sejam executados como root. A estrutura básica de cada linha é:
user_list host_list = cmd_list
O cmd_list pode incluir detalhes de qual usuário o usuário real tem permissão para alternar. Por exemplo, você pode permitir que um webmaster mude para wwwroot para reiniciar o apache, mas não para fazer o root. Também pode incluir outras opções, como se a senha do usuário é necessária antes da mudança (esse é o padrão).
Uma linha de exemplo pode ser:
joe ALL=(ALL) ALL
o que significa: deixe joe executar qualquer comando em qualquer host como qualquer usuário. Uma linha mais apertada pode ser:
joe ALL=(operator) /usr/local/ops/
o que significa: deixe joe executar qualquer comando no diretório / usr / local / ops como o usuário "operador".
Existem muitos exemplos no final da página do manual sudoers.
Você deve editar /etc/sudoers
com o comando visudo
. Isso verifica se o arquivo é legal e ajuda a impedi-lo de quebrá-lo acidentalmente.
sudo
é uma invenção impressionante