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


25

Sou bastante novo na administração de servidores e já vi muitos sites recomendando atribuir privilégios sudo a um usuário criado pelo usuário root e fornecendo ao usuário root uma senha incrivelmente longa para aprimoramento de segurança.

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


7
O sudoer não pode fazer tudo o que o root pode, apenas o que o root permite ao sudoer, e o sudoer ainda precisa sudo o comando. Por fim, os sudoers sudo as coisas como sua própria conta de usuário, primeiro o que significa que eles não precisam fazer login como root e, em segundo lugar, permitindo que você veja quem escondeu algo.
Keiths

Respostas:


48

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

  • Você não está fornecendo sua senha de root
    Como regra geral, se alguém deixar sua empresa e eles souberem a (s) senha (s) de root, agora você precisará alterar essas senhas em todos os lugares. Com o gerenciamento adequado da configuração, isso é um pequeno aborrecimento. Sem isso, é uma tarefa enorme.

  • Você não está entregando as chaves do reino,
    sudo permitindo especificar uma lista restrita de comandos que os usuários podem executar; portanto, se você decidir que Alice precisa apenas da capacidade de parar e iniciar o Apache, mas Bob precisa de direitos de root completos, você pode definir eles de acordo.

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

  • Há uma trilha de auditoria
    Com exceção de usuários que têm permissão para fazer sudo su -, sudo shou algo equivalente, sudoirá produzir uma trilha de auditoria de que corria usuário o que comandos.
    (Ele também produzirá uma lista das pessoas que deram a si mesmas um shell raiz não registrado, para que você possa apontar o dedo para elas e assobiar em desaprovação.)

  • sudoé bom para mais do que apenas raiz concentrados todos no sudocomo uma maneira de fazer coisas como o su peruser, mas isso não é tudo o que é bom para.
    Digamos que Alice seja responsável por uma compilação de software específica, mas Bob também poderá executar o script de compilação. Você pode fornecer a Bob uma entrada em sudoers que permite executar o script de construção como usuário de Alice. (Sim, claro, existem maneiras muito melhores de lidar com esse caso em particular, mas o princípio de Let user A run a program as user Bpode ser útil ...).
    Você também obtém os mesmos benefícios da trilha de auditoria que mencionei acima quando faz isso ...


1
Resposta muito útil - se eu souber (e quero dizer com 100% de certeza) que serei o único a gerenciar um único servidor, você vê muitos benefícios em atribuir privilégios sudo a outro usuário (que seria eu mesmo assim) fora de me impedir de estragar alguma coisa?
JM4

3
@ Consistência JM4 e boas práticas para um dia no futuro, quando você estiver trabalhando em um ambiente maior. Do ponto de vista prático, você nunca deve efetuar login como root diretamente, a menos que esteja no console físico consertando algo que é regado com facilidade, então sudoversus sué uma distinção acadêmica - você terá que pular um aro ou outro. Usar sudooferece a você a chance de exercitar o princípio do mínimo de privilégios (meu último ponto) onde for prático, e isso é sempre algo a considerar seriamente.
voretaq7

2
Além disso, use o visudo para editar seu arquivo sudoers.
23630 Justin Dearing

3
Observe que muitos comandos interativos permitirão que os usuários ignorem a trilha de auditoria. Por exemplo, qualquer usuário que sudo vipuder :! bashuma vez dentro do vi.
Dietrich Epp

4
@DietrichEpp A NOEXECtag ajuda nesse caso.
Shane Madden

17

A principal diferença é que os usuários se autenticam sudousando sua própria senha, enquanto que com suou login root direto a senha root é usada.

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

sudotambém é capaz de limitar quais comandos cada usuário pode executar como root, para que usuários específicos possam ter acesso apenas às tarefas que precisam executar, se não exigirem acesso root completo.


1
obrigado pela ajuda. Vejo o benefício do seu ponto de vista, mas também observei realmente um usuário básico para o usuário root como um ponto de autenticação duplo, pois desabilitei o login do usuário root no ssh no meu servidor.
JM4

4

Além das respostas dadas, que são válidas, não esqueça que um usuário logado como root pode potencialmente interromper o sistema a cada comando. Se você forçá-los a digitar sudo antes de fazer algo potencialmente perigoso, pelo menos, você os informa que eles precisam checar novamente antes de executar um comando específico.


2

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

Por exemplo - se você processa o único evento capturado nos logs, está processando. Qualquer coisa depois disso vai como raiz. E se você já olhou os logs no Unix / Linux, sabe que o root faz muita coisa.

Por outro lado, o Sudo registra praticamente tudo como o usuário de origem.


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 deseja quebrar antes de iniciar. Quando a conta raiz está bloqueada, o usuário precisa determinar o nome de usuário e a senha para invadir um sistema.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.