4Aug

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

click fraud protection

Se você é um usuário do Linux, você provavelmente já viu referências tanto ao sudo quanto ao su. Os artigos aqui no How-To Geek e em outros lugares indicam aos usuários do Ubuntu que usem os usuários de sudo e outros distribuidores Linux para usar su, mas qual é a diferença?

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

O usuário raiz

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

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

Su vs. Sudo

O comando su muda para o super usuário - ou usuário raiz - quando você o executa sem opções adicionais. Você terá que inserir a senha da conta raiz. Este não é todo o comando su, no entanto, você pode usá-lo para mudar para qualquer conta de usuário. Se você executar o comando

instagram viewer
su bob , você será solicitado a inserir a senha de Bob e o shell mudará para a conta de usuário do Bob.

Depois de terminar de executar os comandos no shell de raiz, você deve digitar sair do para deixar o shell de raiz e voltar para o modo de privilégios limitados.

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 lembra a senha por quinze minutos e não pedirá uma senha novamente até os quinze minutos em espera.

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

Ubuntu vs outras distribuições Linux

O comando su é a maneira tradicional de adquirir permissões de root no Linux. O comando sudo existiu há muito tempo, mas o Ubuntu foi a primeira distribuição Linux popular a ir somente por padrão, por padrão. Quando você instala o Ubuntu, a conta padrão é criada, mas nenhuma senha é atribuída a ela. Você não pode fazer login como root até que você atribua uma senha à conta raiz.

Existem várias vantagens em usar sudo em vez de 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 conta de usuário e raiz separadas durante a instalação.

Outra vantagem é que desencoraja os usuários de fazer login como o usuário root - ou usando su para obter um shell de raiz - e mantendo o shell de raiz aberto para fazer seu trabalho normal. Executando menos comandos à medida que a raiz aumenta a segurança e evita mudanças acidentais no sistema.

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

Alguns truques

Linux é flexível, por isso não demora muito para fazer su trabalho de forma semelhante a sudo - ou vice-versa.

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

su -c 'comando'

Isso é semelhante ao de executar um comando com sudo, mas você precisará da senha da conta raiz em vez de seu usuário atualsenha da conta.

Para obter um shell de raiz completo e interativo com sudo, execute sudo -i.

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

Ativando o usuário raiz no Ubuntu

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

sudo passwd root

Sudo solicitará a senha da sua conta de usuário atual antes de configurar uma nova senha. Use sua nova senha para fazer login como root a partir de um prompt de login do terminal ou com o comando su. Você nunca deve executar um ambiente gráfico completo como o usuário root - esta é uma prática de segurança muito fraca, e muitos programas se recusarão a trabalhar.

Adicionando usuários ao arquivo Sudoers

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

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

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

Adicione a seguinte linha ao arquivo, substituindo usuário com o nome da conta de usuário:

usuário ALL =( ALL: ALL) ALL

Pressione Ctrl-X e, em seguida, 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.

versões gráficas do Su

Linux também suporta versões gráficas de su, que pedem sua senha em um ambiente gráfico. Por exemplo, você pode executar o seguinte comando para obter um prompt de senha gráfica e executar o navegador de arquivos do 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

O comando gksu também possui alguns outros truques na manga - ele preserva as configurações atuais da sua área de trabalho, de modo que os programas gráficos não serão vistos fora de lugar quando você os lançar como um usuário diferente. Programas como o gksu são o modo preferido de iniciar aplicativos gráficos com privilégios de root.

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

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