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 um root com o comando su ou sudo e sua própria senha.

Então qual a diferença?

Hieu Nguyen
fonte

Respostas:

7

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

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

phihag
fonte
2
Você deve usar o «visudo» em vez de editar manualmente o arquivo / etc / sudoers - a sintaxe será verificada antes de salvar, o que pode poupar alguns problemas.
Nicolas
@ Nicolas Atualizado para incluir isso. Mas eu queria ressaltar que o arquivo é escrito automaticamente por distribuições modernas.
phihag
3

Um usuário normal só pode obter acesso root com o sudo se estiver no arquivo sudoers (o que significa que é 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.

Tremores
fonte
3

O sucomando para alterar temporariamente uma identidade para qualquer usuário em um sistema e executar muitos programas com suas permissões. Não precisa ser a raiz. Se o usuário executando sunão for a raiz, ele precisará digitar a senha do usuário que ele deseja obter identidade.

O sudocomando é 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 senha de entrada é opcional e configurável. Alguma distribuição permite que o primeiro usuário do sistema execute com sudotudo.

Michas
fonte
2

Para adicionar às respostas acima,

su user1com a senha do usuário, mude sua credencial para user1 até você digitar exit, suassumindo root por padrão.

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

Lorde Loh.
fonte
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 su totais por um período limitado de tempo.

ldg
fonte
3
com certeza todos os usuários podem usar su, eles precisam apenas da senha do usuário para o qual estão mudando.
Grady Player
1
Tradicionalmente, os BSDs exigem que você esteja no grupo wheel para permitir o uso de su para se tornar raiz. Isso também pode ser configurado no Linux, mas não é padrão.
Jaap Ancianidade
-2

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

Os benefícios deste sistema são:

  1. É fácil para um usuário privilegiado executar comandos como root somente 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 rootseria o primeiro nome de login a adivinhar).
  3. Vários usuários em um sistema compartilhado podem ter permissões de root, sem a necessidade de compartilhar senhas.
dr jimbob
fonte