O que é diferente entre root e sudo?

14

Um usuário root pode ter todos os privilégios. Mas um usuário normal pode obter acesso como uma raiz com o comando su ou sudo e sua própria senha.

Então, qual é a diferença?

    
por Hieu M. Nguyen 19.06.2011 / 18:31

6 respostas

7

O comando su (e sudo) exige tradicionalmente a senha do root . No entanto, você pode configurar sudo para que usuários comuns possam obter privilégios de root com sua própria senha, modificando /etc/sudoers (como root, preferencialmente com visudo ).

As distribuições modernas do Linux pré-configuram o primeiro usuário para conseguir sudo com sua própria senha. Isso evita a configuração incorreta do sistema pelo usuário e permite que eles obtenham controle total sem a necessidade de uma senha raiz separada.

    
por 19.06.2011 / 18:34
3

Um usuário normal só pode obter acesso root com o sudo se ele estiver no arquivo sudoers (o que significa que ele é confiável o suficiente para obter permissões de administrador sob demanda). Em um ambiente de produção, quase ninguém deve ser um sudoer.

    
por 19.06.2011 / 18:34
3

O comando su faz com que altere temporariamente uma identidade para qualquer usuário em um sistema e execute vários programas com permissões de his / her / its. Não precisa ser a raiz. Se o usuário que estiver executando su não for a raiz, ele precisará digitar a senha do usuário que deseja obter identidade.

O comando sudo é para executar um comando com permissões de qualquer usuário. Não precisa ser a raiz também. O comando é muito configurável e fornece algum tipo de controle de acesso preciso. A entrada da própria senha é opcional e configurável. Algumas distribuições permitem que o primeiro usuário do sistema seja executado com sudo de tudo.

    
por 19.06.2011 / 21:14
2

Para adicionar as respostas acima,

su user1 com a senha do usuário deve mudar sua credencial para user1 até você digitar exit apenas su deve assumir raiz por padrão.

sudo , conforme mencionado em outras respostas, pode ser concedido a usuários confiáveis e a um conjunto restrito de comandos. Além disso, sudo pode ser configurado para registrar comandos executados. Essa é uma boa maneira de rastrear o uso indevido de privilégios.

    
por 19.06.2011 / 23:05
1

Nem todos os usuários normais podem usar o sudo, eles precisam estar no arquivo sudoers e você pode controlar quais comandos ou tipos de comandos o usuário pode executar. Além disso, apenas determinados usuários podem usar su para alternar para o usuário raiz. Normalmente, você só teria permissões sudo para um conjunto limitado de comandos e permissões completas por um período limitado.

    
por 19.06.2011 / 18:33
-2

Somente usuários com privilégios de superusuário podem sudo ou su, usuários normais não podem. Isso é configurado em / etc / sudoers, que deve sempre ser editado com visudo.

Os benefícios deste sistema são:

  1. É fácil para um usuário privilegiado executar comandos como raiz apenas quando necessário,
  2. torna mais difícil adivinhar o nome de usuário root (por exemplo, se um simples bot ssh tentasse fazer login em um sistema root seria o primeiro nome de login a ser adivinhado).
  3. Vários usuários em um sistema compartilhado podem ter permissões de root, sem precisar compartilhar senhas.
por 19.06.2011 / 18:39