Para operação básica - executando comandos como root - a diferença mais visível entre sudo e su é que sudo requer a senha do usuário que está chamando (por exemplo, sua senha), enquanto su requer a senha do usuário de destino (por exemplo, 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 possui recursos adicionais além dos su's. 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 apenas comandos específicos como outro usuário. Isso é possível porque o sudo não requer autenticação (além de confirmar que você está digitando sua senha - mas isso é sutilmente diferente de autenticar o usuário para uma tarefa).
Você altera a configuração do sudo executando o visudo
comando como root (nunca edite a configuração diretamente). Verifique se a variável de ambiente EDITOR
ou VISUAL
está definida como seu editor favorito ou você pode obter um editor desconhecido. A sudoers
página de manual é 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
Gilles 'SO- parar de ser mau'
fonte
sudo
é uma invenção impressionanteapache2ctl graceful
eu acho que preferiria cortar meus pulsos e acabar logo com isso.A maior diferença é que
sudo
você não precisa da senha de root para executar um comando como root, como fariasu
. Você precisa da senha root para adicionar alguém aosudoers
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, executeman sudoers
. Você encontrará exemplos de permitir que apenas determinados comandos sejam executados como root. A estrutura básica de cada linha é: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:
o que significa: deixe joe executar qualquer comando em qualquer host como qualquer usuário. Uma linha mais apertada pode ser:
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 comandovisudo
. Isso verifica se o arquivo é legal e ajuda a impedi-lo de quebrá-lo acidentalmente.fonte
sudoers
arquivo está configurado. Pode ser configurado para exigir uma senha ou para não exigir uma senha.Além das outras respostas, o sudo fornece recursos de registro para que você possa acompanhar quais comandos foram executados e quem. Isso não é para fins de segurança, pois um usuário mal-intencionado que obtém acesso ao sudo pode acabar com o log. É muito útil, porém, descobrir exatamente o que você ou algum outro administrador fez com os olhos turvos às 2h da semana passada.
fonte