O comando su
(substitute user) no Linux (e em outros sistemas Unix-like) é utilizado para executar comandos com os privilégios de outro usuário. Geralmente, é usado para se tornar o superusuário (root), mas também pode ser usado para se tornar qualquer outro usuário no sistema.
Funcionalidade Básica:
A principal função do su
é permitir que um usuário execute comandos com a identidade de outro usuário. Isso é fundamental para tarefas administrativas que exigem permissões elevadas, como instalar software, modificar arquivos de sistema ou gerenciar usuários.
Como Usar:
Para se tornar root: Simplesmente execute su
no terminal. Será solicitada a senha do usuário root. Após digitar a senha correta, você se torna o usuário root e o prompt do terminal muda (geralmente para #
).
Para se tornar outro usuário: Execute su <nome_do_usuário>
. Será solicitada a senha do usuário especificado (a menos que o usuário atual já seja root).
Para executar um único comando como outro usuário: Execute su -c "<comando>" <nome_do_usuário>
. Por exemplo, su -c "apt update" root
executaria o comando apt update
como o usuário root.
Opções Comuns:
-
ou -l
ou --login
: Simula um login completo do usuário alvo. Isso significa que o ambiente do usuário alvo (variáveis de ambiente, diretório home, etc.) é carregado. É a forma mais recomendada de usar su
para se tornar outro usuário. Mais informações sobre <a href="https://pt.wikiwhat.page/kavramlar/login%20shell" target="_blank">login shell</a> são importantes aqui.-c <comando>
ou --command=<comando>
: Executa um único comando como o usuário especificado.-s <shell>
ou --shell=<shell>
: Especifica o shell a ser usado para o usuário alvo. Por padrão, o shell do usuário alvo é usado, como definido em /etc/passwd
. Um exemplo seria <a href="https://pt.wikiwhat.page/kavramlar/bash%20shell" target="_blank">bash shell</a>.Segurança:
su
pode levar a problemas de segurança. Evite executar comandos desnecessários como root. Considere usar <a href="https://pt.wikiwhat.page/kavramlar/sudo" target="_blank">sudo</a>, que permite conceder permissões específicas a usuários para executar comandos específicos como root, sem a necessidade de compartilhar a senha root.su
nos logs do sistema pode ajudar a identificar atividades suspeitas.Exemplos:
su
: Tornar-se root (solicita a senha de root).su john
: Tornar-se o usuário john (solicita a senha de john, a menos que você já seja root).su - john
: Tornar-se o usuário john, simulando um login completo.su -c "shutdown -h now" root
: Desligar o sistema como o usuário root.Alternativas:
Embora su
seja um comando fundamental, <a href="https://pt.wikiwhat.page/kavramlar/sudo" target="_blank">sudo</a> é geralmente preferido para conceder acesso administrativo de forma mais granular e auditável. pkexec
é outra alternativa para executar aplicações gráficas com privilégios elevados.