deve usar sudo ou apenas su root no gerenciamento de servidores?

8

Qual abordagem é melhor?

Para uso em computadores, parece que o sudo é melhor, já que:

  • posso ter um histórico mais consistente como usuário normal
  • Não precisa se lembrar de duas senhas, o que é especialmente verdadeiro quando não faço tarefas administrativas regularmente.
  • Não é necessário criar uma conta root adicional na instalação.

Mas sobre gerenciamento de servidores?

No servidor, geralmente você já tem uma conta root criada e é provável que você faça coisas administrativas com frequência. Então, as vantagens do sudo parecem não valer mais.

Além disso, é fácil configurar o su na linha de comando na maioria das distribuições, basta adicionar o usuário ao grupo wheel. (Você pode até mesmo passar -G wheel quando useradd ing.) Assim, configurar su pode ser facilmente automatizado em scripts de shell.

Mas para o sudo? Você precisa primeiro adicionar o usuário, em vez de executar visudo interativamente. Isso é ruim, já que você não pode automatizá-lo em scripts de shell.

(Bem, você pode. Por exemplo,

echo '%wheel    ALL=(ALL)   ALL' >> /tmp/sudoers.tmp
cp /etc/sudoers /etc/sudoers.old
visudo -c -f /tmp/sudoers.tmp &&  mv /tmp/sudoers.tmp /etc/sudoers

Mas pelo menos não é assim tão fácil.

Então, quais são suas opiniões? Para um ambiente de servidor, qual você prefere, sudo ou su root?

    
por weakish 26.12.2009 / 12:38

2 respostas

16

A conta root é necessária nos servidores, com certeza, mas eu prefiro conceder direitos de sudo, especialmente quando há vários usuários na máquina, e isso por vários motivos:

  • Eu não uso o sudo apenas para conceder TODOS os direitos para TODOS os comandos, mas também para conceder direitos específicos como um usuário específico para comandos específicos.
  • Ao atribuir usuários a grupos funcionais, posso gerenciar seus direitos com esses grupos em sudoers, em vez de gerenciar usuários individualmente.
  • acessos sudo são registrados no auth.log por padrão, incluindo quais usuários usaram sudo a qualquer momento.
  • sudo permite gerenciar a configuração de várias máquinas com um arquivo.
  • cada usuário mantém sua própria senha, portanto, não há necessidade de alterar a senha raiz quando um usuário sai.

Quanto a gerenciá-lo com scripts, novas versões do sudo suportam inclusões, mas eu prefiro usar fantoches e definir classes que concatenem o conteúdo dos sudoers.

O Puppet também pode ser associado a Augeas para gerenciar seu arquivo sudoers.

    
por 26.12.2009 / 12:56
1

Você parece estar dificultando as coisas (quando se trata de gerenciar o / etc / sudoers). Um simples

echo '%wheel    ALL=(ALL)   ALL' >> /etc/sudoers

seria suficiente. Tudo o que o visudo faz é bloquear o arquivo contra edições concorrentes e garantir que o arquivo ainda seja analisado corretamente.

    
por 26.12.2009 / 13:59

Tags