Quais são os benefícios do sudo sobre o su?

17

Qual é o benefício real que o Ubuntu (ou derivados do Debian) obtém desabilitando o usuário root?

Em todos os lugares que leio, ele diz para evitar danos não intencionais para usuários inexperientes. Eu quero saber exatamente o que, desde sudo pode executar todos os comandos (que eu sei / uso).

Então, em qual caso root pode causar danos, enquanto sudo não pode?

PS: Eu sei como o sudo funciona.

    
por Web-E 11.05.2012 / 12:26

7 respostas

28
  

Então, em qual caso a raiz pode causar danos enquanto o sudo não pode?

Como normalmente você deve invocar sudo cada vez que quiser fazer algo que exija privilégios, o raciocínio é que você "pensará antes de pular", ou seja, não colará sudo na frente de algo sem pensar por um segundo. o comando que você está executando vai fazer.

Com su , por outro lado, quando você está dentro, você está dentro Você tem carta branca (uma licença aberta) para fazer qualquer coisa e tudo, e o raciocínio é que você pode esquecer por um momento que você tenha esses privilégios e, se tiver azar, execute algo que afetará seriamente / danifique seu sistema - se você não tiver privilégios su, o comando não teria feito nada sério.

    
por ish 11.05.2012 / 12:29
16

IMO As principais vantagens do sudo over su são que o sudo possui logging superior de quais comandos foram executados e o sudo dá um controle mais preciso sobre o que os usuários podem fazer.

su é tudo ou nenhum, mas o sudo pode ser configurado para permitir acesso a alguns, mas não a todos os comandos.

Veja link para uma discussão mais completa, incluindo vantagens e desvantagens.

    
por Panther 11.05.2012 / 14:24
10

su -

Quando logado como root , qualquer tarefa que você iniciar, ação desencadeada ou evento aleatório causado pela visita a um determinado site, etc. .. será executada como superusuário .

sudo

Quando você invoca sudo , enquanto você executa um comando, somente esse comando será executado como superusuário .

Você será solicitado a sua senha , antes que o comando seja executado. Assim, a interação do usuário com você também é exigida .

As tentativas de invocar sudo também podem ser registradas .

    
por david6 11.05.2012 / 12:41
3

É sobre o gerenciamento de usuários / senhas para administradores de sistema.

Se você tiver vários usuários, todos eles devem ter contas separadas e devem poder ser rastreados usando essas contas. Isso significa que as pessoas não podem esconder sua identidade. Além disso, se você precisar revogar permissões específicas de usuários, não precisará redefinir a senha de root. Para dar a cada pessoa em um ambiente com mais de 2 administradores, a senha do root cria um pesadelo quando uma pessoa sai. Você não deve apenas mudá-lo, mas comunicá-lo, etc. Tudo isso também tem que acontecer quando um deles tem um laptop roubado ou coisas assim. Uma conta com uma senha por pessoa torna a administração mais simples. É semelhante à filosofia por que cada serviço deve ter sua própria conta. Se uma conta estiver comprometida, você não precisará reconfigurar outra dúzia de serviços (como tarefas de backup) para usar uma conta diferente.

Eu também acho pessoalmente conveniente não ter outra senha para acompanhar, perder e ter comprometido. No RHEL, desabilitei especificamente a conta root depois de configurar o sudo, para não precisar rastreá-lo. De vez em quando, um usuário compila o arquivo sudo, mas isso é solucionável no modo de usuário único. (Naturalmente, é geralmente uma máquina de produção.)

NOTA: 'sudo bash' permitirá que você pule a digitação do sudo para cada comando ...

    
por flickerfly 16.05.2012 / 04:54
2

Além disso, há considerações de registro a serem consideradas entre o sudo e o su. Ser su simplesmente faz tudo como root sem nenhuma entrada além de uma linha no log de autenticação dizendo que você se tornou root.

Por outro lado, o Sudo é sempre logado como seu ID de usuário com priveleesw escalado.

    
por kd1s 16.08.2014 / 15:40
1

Em primeiro lugar, precisamos analisar o que su e sudo, na verdade, são

su - significa Usuário substituto. Você usa isso para alternar para um shell como outro usuário usando a senha desse usuário. Comumente usado com root.  Não requer uma senha quando executado como root.

sudo - permite que um usuário autorizado execute um comando especificado como outro usuário. Também é comumente usado com root. No entanto, isso permite que você gerencie especificamente quais comandos podem ser executados como outro uso. (Por exemplo, você poderia dar a um usuário a capacidade de executar um script init.d mas nada mais.)

Note que você sempre pode executar sudo su ou sudo -i e isso lhe dará um shell de root. No entanto, nenhuma senha de root significa não fazer login diretamente como root ... o que significa que ninguém pode entrar nesse usuário.

EDIT: então talvez esta resposta que você está procurando seja: não ter uma senha root força você a usar sudo , que por sua vez naturalmente alinha você com a filosofia sudo , o que sugere que você imponha maior controle sobre as ações executadas como raiz.

    
por user606723 11.05.2012 / 19:36
0

Normalmente, o login como su é mais fácil ao executar tarefas administrativas. No entanto, há pelo menos uma exceção: quando a propriedade de arquivos é importante. Se você precisar que um usuário seja o proprietário de um arquivo, faça login como esse usuário e use o sudo para baixar ou copiar arquivos. Exemplos simples são arquivos de favoritos e de papel de parede. Se um usuário não possui o arquivo, um bookmarks do Firefox "Restore" "From File" irá falhar. Quando você define um papel de parede da área de trabalho, pode não funcionar a menos que você possua o arquivo. Às vezes, você pode apenas definir privilégios ou ativar como um arquivo executável, mas algumas configurações ou programas falharão se você não for o proprietário de um arquivo.

    
por DotheMath45 16.05.2012 / 04:44

Tags