Como o sudo se destina a ser usado?

23

Eu tentei configurar sudo antes, mas não tive muita sorte com isso. Como isso é diferente de su -l -c "x" ? Parece que, através do arquivo de configuração, pode-se fazer com que o usuário só tenha acesso a determinados comandos e muito mais. Eu sempre pensei em sudo como uma forma de alinhar um comando como outro usuário ou grupo. Como distros como o Ubuntu e o Mint facilitam essencialmente dando ao usuário principal acesso fácil ao root por meio de uma senha, não tenho certeza de qual é o uso pretendido.

Como eu adiciono um usuário ao arquivo sudo, dando-lhe o direito de apenas executar certos comandos na raiz? Eu também não quero abrir nenhum buraco de segurança.

    
por Naftuli Kay 13.04.2011 / 23:38

3 respostas

15

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
    
por 14.04.2011 / 00:16
5

A maior diferença é que, com sudo , você não precisa da senha de root para executar um comando como root, como faria com su . Você precisa da senha de root para adicionar alguém ao arquivo sudoers , mas depois disso essa pessoa pode executar todo ou alguns (se você a restringiu) como root sem precisar de uma senha adicional.

A outra diferença é que, como você observou, sudo permite um controle muito mais preciso sobre exatamente quais comandos podem ser executados.

Para obter detalhes sobre o formato da execução do arquivo sudoers man sudoers . Você encontrará exemplos de permitir que apenas certos comandos sejam executados como root. A estrutura básica de cada linha é:

user_list host_list = cmd_list

cmd_list pode incluir detalhes de qual usuário o usuário real pode alternar. Por exemplo, você pode permitir que um webmaster mude para wwwroot para reiniciar o apache, mas não para o root. Também pode incluir outras opções, como se a senha do usuário é necessária antes de alternar (esse é o padrão).

Uma linha de exemplo pode ser:

joe  ALL=(ALL) ALL

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/

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 de manual do sudoers.

Você deve editar /etc/sudoers com o comando visudo . Isso verifica se o arquivo é legal e ajuda a evitar que você o quebre acidentalmente.

    
por 14.04.2011 / 00:20
2

Além das outras respostas, o sudo fornece recursos de registro para que você possa acompanhar quais comandos foram executados e por quem. Isso não é para fins de segurança, pois um usuário mal-intencionado que recebe acesso sudo pode eliminar o log. É muito útil, entretanto, descobrir exatamente o que você ou algum outro administrador fechou os olhos às 2 da manhã da semana passada.

    
por 14.04.2011 / 01:01

Tags