Qual é a diferença entre Sudo e Su no Linux?

imagem

Se você é um usuário Linux, provavelmente já viu referências a sudo e su. Os artigos aqui no How-To Geek e em outros lugares instruem os usuários do Ubuntu a usar o sudo e os usuários de outras distribuições Linux a usar o su, mas qual é a diferença?

Sudo e su são duas maneiras diferentes de obter privilégios de root. Cada um funciona de uma maneira diferente, e diferentes distribuições do Linux usam configurações diferentes por padrão.

O usuário raiz

Su e sudo são usados ​​para executar comandos com permissões de root. O usuário root é basicamente equivalente ao usuário administrador no Windows – o usuário root tem permissões máximas e pode fazer qualquer coisa no sistema. Usuários normais no Linux são executados com permissões reduzidas – por exemplo, eles não podem instalar software ou gravar em diretórios do sistema.

Para fazer algo que requeira essas permissões, você terá que adquiri-las com su ou sudo.

Su vs. Sudo

O comando su muda para o superusuário – ou usuário root – quando você o executa sem opções adicionais. Você terá que inserir a senha da conta root. No entanto, isso não é tudo que o comando su faz – você pode usá-lo para alternar para qualquer conta de usuário. Se você executar o comando su bob , será solicitado que você insira a senha de Bob e o shell mudará para a conta de usuário de Bob.

Quando terminar de executar os comandos no shell do root, você deve digitar exit para sair do shell do root e voltar ao modo de privilégios limitados.

Recomendado:  O que é o Xbox Game Pass e vale a pena?

Sudo executa um único comando com privilégios de root. Quando você executa o comando sudo , o sistema solicita a senha da sua conta de usuário atual antes de executar o comando como usuário root. Por padrão, o Ubuntu se lembra da senha por quinze minutos e não pedirá uma senha novamente até que os quinze minutos se esgotem.

imagem

Esta é uma diferença fundamental entre su e sudo. Su muda você para a conta de usuário root e requer a senha da conta root. Sudo executa um único comando com privilégios de root – ele não muda para o usuário root ou requer uma senha de usuário root separada.

Ubuntu vs. outras distribuições Linux

O comando su é a forma tradicional de obter permissões de root no Linux. O comando sudo existe há muito tempo, mas o Ubuntu foi a primeira distribuição Linux popular a usar apenas o sudo por padrão. Quando você instala o Ubuntu, a conta root padrão é criada, mas nenhuma senha é atribuída a ela. Você não pode fazer login como root até atribuir uma senha à conta root.

imagem

Existem várias vantagens em usar o sudo em vez do su por padrão. Os usuários do Ubuntu só precisam fornecer e lembrar uma única senha, enquanto o Fedora e outras distribuições exigem que você crie senhas de root e de conta de usuário separadas durante a instalação.

Outra vantagem é que isso desencoraja os usuários de se autenticarem como root – ou usar su para obter um shell root – e manter o shell root aberto para fazer seu trabalho normal. Executar menos comandos conforme o root aumenta a segurança e evita alterações acidentais em todo o sistema.

Distribuições baseadas no Ubuntu, incluindo Linux Mint, também usam sudo em vez de su por padrão.

Recomendado:  Como ouvir podcasts no Google Home

Alguns truques

O Linux é flexível, então não é preciso muito trabalho para fazer o su funcionar de maneira semelhante ao sudo – ou vice-versa.

Para executar um único comando como usuário root com su, execute o seguinte comando:

su -c ‘comando’

Isso é semelhante a executar um comando com sudo, mas você precisará da senha da conta root em vez da senha da sua conta de usuário atual.

Para obter um shell de root completo e interativo com sudo, execute sudo –i.

imagem

Você terá que fornecer a senha da sua conta de usuário atual em vez da senha da conta root.

Habilitando o usuário root no Ubuntu

Para habilitar a conta de usuário root no Ubuntu, use o seguinte comando para definir uma senha para ela. Tenha em mente que o Ubuntu não recomenda isso.

sudo passwd root

Sudo solicitará a senha da sua conta de usuário atual antes de definir uma nova senha. Use sua nova senha para fazer login como root em um prompt de login de terminal ou com o comando su. Você nunca deve executar um ambiente totalmente gráfico como usuário root – esta é uma prática de segurança muito pobre e muitos programas se recusarão a funcionar.

imagem

Adicionando usuários ao arquivo Sudoers

Apenas contas do tipo administrador no Ubuntu podem executar comandos com sudo. Você pode alterar o tipo de uma conta de usuário na janela de configuração Contas de usuário.

imagem

O Ubuntu designa automaticamente a conta de usuário criada durante a instalação como uma conta de administrador.

imagem

Se estiver usando outra distribuição Linux, você pode conceder a um usuário permissão para usar sudo, executando o comando visudo com privilégios de root (portanto, execute su primeiro ou use su -c ).

Recomendado:  Como configurar e usar extensões em fotos para OS X

Adicione a seguinte linha ao arquivo, substituindo usuário pelo nome da conta do usuário:

usuário ALL = (ALL: ALL) ALL

Pressione Ctrl-X e depois Y para salvar o arquivo. Você também pode adicionar um usuário a um grupo especificado no arquivo. Os usuários nos grupos especificados no arquivo terão privilégios sudo automaticamente.

imagem

Versões Gráficas do Su

O Linux também oferece suporte a versões gráficas do su, que pedem sua senha em um ambiente gráfico. Por exemplo, você pode executar o seguinte comando para obter um prompt gráfico de senha e executar o navegador de arquivos Nautilus com permissões de root. Pressione Alt-F2 para executar o comando a partir de uma caixa de diálogo de execução gráfica sem iniciar um terminal.

gksu nautilus

imagem

O comando gksu também tem alguns outros truques na manga – ele preserva as configurações atuais da sua área de trabalho, de forma que os programas gráficos não parecerão deslocados quando você iniciá-los como um usuário diferente. Programas como o gksu são a forma preferida de iniciar aplicativos gráficos com privilégios de root.

Gksu usa um back-end baseado em su ou sudo, dependendo da distribuição Linux que você está usando.


Agora você deve estar preparado para encontrar o su e o sudo! Você encontrará ambos se usar distribuições Linux diferentes.