Quais são os benefícios reais de atribuir privilégios sudo a um usuário em vez de usar root?

25

Sou relativamente novo na administração de servidores, e tenho visto muitos sites recomendando atribuir privilégios sudo a um usuário criado pelo usuário root e dando ao usuário root uma senha insanamente longa para o aprimoramento da segurança.

Se o usuário recém-criado puder executar as mesmas funções de um usuário root, qual é o benefício real de fazer isso?

    
por JM4 10.08.2012 / 21:50

5 respostas

48

Existem vários benefícios em usar sudo na entrega da senha de root. Em nenhuma ordem particular:

  • Você não está dando sua senha de root
    Como regra geral, se alguém sair da sua empresa e souber a (s) senha (s) de root, você terá que alterar essas senhas em todos os lugares. Com o gerenciamento adequado da configuração, isso é um aborrecimento menor. Sem isso é uma tarefa enorme.

  • Você não está dando as chaves para o reino
    sudo permite que você especifique uma lista restrita de comandos que os usuários podem executar, então se você decidir que Alice só precisa da capacidade de parar e iniciar o Apache, mas Bob precisa de direitos de root completos, você pode configurá-los de acordo.

  • Você pode gerenciar a autorização centralmente sudo suporta a configuração LDAP, o que significa que todos os sistemas da sua empresa podem examinar um servidor LDAP central para determinar quem pode fazer o quê. Precisa autorizar (ou desautorizar) alguém? Altere a configuração dos sudoers no LDAP e todos os seus sistemas são atualizados de uma vez.

  • Há uma trilha de auditoria
    Com exceção dos usuários com permissão para fazer sudo su - , sudo sh ou algo equivalente, sudo produzirá uma trilha de auditoria de qual usuário executou os comandos.
    (Ele também produzirá uma lista das pessoas que deram a si mesmas uma shell root não registrada, para que você possa apontar o dedo para elas e assoviar em desaprovação.)

  • sudo é bom para mais do que apenas root Todo mundo se concentra em sudo como uma maneira de fazer o fazer como o su peruser, mas isso não é tudo que seja bom. Digamos que Alice seja responsável por uma determinada compilação de software, mas Bob também deve poder executar o script de compilação. Você pode dar a Bob uma entrada em sudoers que lhe permita executar o script de construção como usuário de Alice. (Sim, claro, há maneiras muito melhores de lidar com esse caso em particular, mas o princípio de Let user A run a program as user B pode ser útil ...).
    Você também obtém todos os mesmos benefícios da trilha de auditoria que mencionei acima quando faz isso ...

por 10.08.2012 / 22:06
17

A principal diferença é que os usuários autenticam a sudo usando a senha deles mesmos, enquanto que com su ou login direto na raiz a senha raiz é usada.

Isso significa que você não precisa compartilhar a senha de root com toda a gente , e se precisar para desativar o acesso root para um ou dois usuários no futuro, você pode simplesmente desativá-lo para eles, em vez de ter que alterar a senha do root.

sudo também é capaz de limitar quais comandos cada usuário pode ser executado como root, para que usuários específicos tenham acesso apenas às tarefas que precisam executar, se não precisarem de raiz completa acesso.

    
por 10.08.2012 / 21:54
4

No topo das respostas dadas, que são válidas, não esqueça que um usuário logado como root pode potencialmente quebrar o sistema a cada comando. Se você forçá-los a digitar sudo antes de fazer algo potencialmente perigoso, pelo menos você os torna conscientes de que eles precisam checar novamente antes de executar um comando em particular.

    
por 11.08.2012 / 12:37
2

Sim, de fato - de uma perspectiva de controle e registro, o sudo é muito melhor.

Por exemplo - se você su o único evento capturado nos logs é su'ing. Qualquer coisa depois disso vai como root. E se você já olhou para logs no Unix / Linux, você sabe que o root faz uma carga de trabalho.

O Sudo, por outro lado, registra praticamente tudo como o usuário originador.

    
por 16.08.2014 / 15:51
0

O uso do sudo dificulta o acesso de um usuário mal-intencionado a um sistema. Quando há uma conta raiz desbloqueada, um usuário mal-intencionado sabe o nome de usuário da conta que ela quer quebrar antes de começar. Quando a conta root está bloqueada, o usuário precisa determinar o nome de usuário e a senha para invadir um sistema.

    
por 04.11.2014 / 11:54