O que é su?

su: Comando de Substituição de Usuário no Linux

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:

  • É crucial proteger a senha do usuário root.
  • O uso inadequado de 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.
  • Monitorar o uso de 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.