Não estamos falando de dois comandos diferentes, mas sobre um comando sem uma bandeira específica (o hífen é uma bandeira) e o mesmo comando com a bandeira.
Digitar SU - é o mesmo que digitar su -l; Ambos os comandos vão limpar a maioria das variáveis de ambiente. Assim, antes de continuar com este artigo, vamos ver o que é uma variável de ambiente.
Variáveis de ambiente no Linux:
As variáveis de ambiente são valores usados para definir características do ambiente em que os processos da concha e seus processos filhos estão sendo executados, por exemplo, os processos usam a variável de ambiente $ shell para conhecer o shell em uso (Bash, Zsh, etc.).
O sistema possui muitas variáveis; Este artigo se concentrará nessas variáveis afetadas quando usarmos o su comando.
Para ver todas as variáveis em seu sistema, você pode executar o exportar comando como mostrado abaixo.
exportar
Como você vê na captura de tela acima, existem muitas variáveis em nosso sistema. Vamos nos concentrar nas variáveis específicas LAR, CONCHA, DO UTILIZADOR, LogName, e CAMINHO.
A primeira variável que veremos é CAMINHO. Os valores dessa variável de ambiente são úteis para o sistema saber onde encontrar os comandos ou programas para executar. A variável de ambiente do sistema padrão CAMINHO é definido no /etc/perfil arquivo. As variáveis de caminho dos usuários estão localizados em seus diretórios domésticos em ~/.perfil.
Para aprender seus valores de variável de ambiente de caminho, você pode usar o eco comando seguido pelo $ Símbolo e a variável de ambiente que você deseja verificar, neste caso, CAMINHO, como mostrado no exemplo abaixo.
eco $ caminho
Como você pode ver, o sistema retorna as variáveis de ambiente definidas para o nosso sistema saber onde pesquisar e encontrar os comandos que queremos executar.
A segunda variável de ambiente explicada neste artigo é a variável shell. O valor dessa variável informa ao sistema qual shell estamos usando, se bash, zsh, ksh, etc.
Para ver o valor da sua variável de ambiente de shell, repita a etapa explicada anteriormente, substituindo $ path por $ shell, conforme mostrado na captura de tela abaixo.
eco $ shell
E como você pode ver, a concha é bash. É assim que nosso sistema sabe o que estamos usando, com o valor mostrado acima.
Outra variável de ambiente importante no Linux é $ Home. Este valor indica qual é o diretório inicial do usuário. Para aprender esse valor, você pode executar o comando abaixo.
eco $ em casa
A variável de ambiente.
eco $ logname
O valor da variável de ambiente de usuário é o ID do usuário, o mesmo que $ logname.
eco $ usuário
As variáveis de ambiente explicadas acima são as afetadas pelo su comando quando o hífen ou o -eu sinalizador são adicionados.
Diferença entre os comandos "su" e "su -":
A diferença entre o su comando sem bandeiras e su com um hífen ou -eu O comando sem sinalizadores mantém suas variáveis de ambiente e apenas altera o usuário.
Quando usado com hífens ou o -eu bandeira, a maioria das variáveis ambientais são limpas.
O próximo exemplo mostra o Linuxhint Mudança de usuário para root usando su sem opções.
Então, depois de verificar a variável de ambiente $ logname, vemos que ela permanece como Linuxhint e não raiz.
su
eco $ logname
Ao contrário do exemplo anterior, se o hífen for implementado, ele será atualizado para root ao verificar a variável $ logname.
su -
eco $ logname
Vamos tentar o mesmo com a variável de ambiente de usuário.
su
eco $ usuário
Como você pode ver, ao fazer su como Linuxhint Para mudar para root e verificar a variável de usuário $, ela permanece como Linuxhint.
Ao contrário do exemplo anterior, se implementar o hífen, a variável $ user será limpa e atualizada como mostrado abaixo.
su -
eco $ usuário
Para encerrar este tutorial, este último exemplo mostra o -eu A bandeira faz exatamente o mesmo que o hífen.
su -l
eco $ logname
eco $ usuário
Conclusão:
Variáveis de ambiente são um conceito básico que qualquer usuário do Linux deve saber. Depois de entender a função deles, você pode facilmente perceber a diferença entre o su comando sem e com o -eu bandeira (que é o mesmo que o hifenizado su). Se você gostou deste tutorial, pode querer ler os privilégios de gerenciamento de sudo no Linux.
Espero que este artigo mostrando a diferença entre “su" e "su -Foi útil. Continue seguindo este blog para mais tutoriais e dicas do Linux.