
Você sabe a diferença entre os comandos “su” e “su -” no GNU/Linux?
Neste artigo informativo, vamos aprender qual a diferença entre os comandos su e su – no GNU/Linux.
Todo usuário GNU/Linux, dos iniciantes aos mais avançados, provavelmente deve ter visto ou usado os comandos su ou su – em algum momento.
Mas você sabe a diferença entre cada um deles?
Esses são dois comandos importantes usados para proporcionar a segurança no Linux, principalmente no que diz respeito à política de gerenciamento de usuários e permissões.
Vamos as diferenças!
O comando su é usado para alternar para outro usuário, em outras palavras, alterar o ID do usuário durante uma sessão de login atual.
Se executado sem um nome de usuário em seguida, por exemplo su, ele iniciará a conta administrativa root por padrão.
Normalmente, para se tornar outro usuário ou fazer login para outro usuário, você pode invocar comando abaixo, então será solicitado a senha do usuário no qual você está iniciando.
$ su nome_do_usuario
A imagem abaixo exibe com seria o comportamento do terminal após a execução do comando.
Considerando o cenário na imagem acima, é importante notar que o usuário matheusferraz mantém o ambiente da sessão de login original do usuário root, o diretório de trabalho atual e o caminho para os arquivos também permanecem os mesmos.
Consequentemente, quando o usuário matheusferraz tenta criar uma pasta no diretório de trabalho (que permanece com o diretório do usuário root), ocorre a seguinte mensagem de erro:
Porém, finalmente, o usuário matheusferraz pode listar seu diretório inicial depois de executar o comando cd sem nenhum parâmetro, observe a figura 02.
Aliado a isso, quando você invoca su com um –, ou -l ou mesmo a flag de login, ele carrega todo o ambiente destinado ao usuário especificado semelhante a quando você está logando normalmente.
Todos os comandos abaixo são equivalentes e garantem um resultado igual.
su - nome_do_usuário su -l nome_do_usuário su --login nome_do_usuário
Neste caso, ao usuário matheusferraz é fornecido seu próprio ambiente de login padrão, incluindo o caminho para arquivos executáveis.
Ele também carrega em seu diretório inicial padrão, como mostra a figura a seguir:
Veja também: Como enviar e-mails com Python e SMTP
Em resumo…
Atente para uma importante informação, quando você executar o su sem um nome de usuário em seguida, se tornará automaticamente um super usuário.
O que diverge é que apenas com o su, você receberá o ambiente raiz do ultimo usuário logado.
Em contra partida, com o “-” iniciará o diretório inicial padrão da conta administrativa.
Se liga no próximo exemplo:
matheusferraz@localhost:~$ su Password: root@localhost:/home/matheusferraz# exit exit matheusferraz@localhost:~$ su - Password: root@localhost:~#
Para Saber Mais!
A título de curiosidade, o comando sudo é distinto do comando su.
Usa-se esse comando para executar configurações administrativas sem precisar estar logado no sistema como root.
Conclusão
Espero que este artigo informativo tenha esclarecido algumas dúvidas, mesmo que minimamente.
Para mais informações consulte o manual de cada comando.
Até uma próxima!
Artigo baseado no conteúdo do site TecMint.
0 Comentários