AFAIK su -
simula um login recente, portanto, aciona tudo relacionado ao login, enquanto su
simplesmente alterna o usuário para o root.
Eu vejo que su -
transforma o shell em um login de su --help
. Estou curioso para saber quais são as diferenças entre este e um comando normal su
.
Eu sei que parece haver uma diferença nos caminhos, quaisquer outras diferenças ou isso é praticamente a única diferença?
AFAIK su -
simula um login recente, portanto, aciona tudo relacionado ao login, enquanto su
simplesmente alterna o usuário para o root.
diferença eu geralmente encontro é a diferença em variáveis de ambiente. ambiente de mudança, su não. Por exemplo: "su -" pode dar um PATH diferente, acessando outras ferramentas, pode dar outras configurações diferentes para o HOME (~ / .ssh! /. Xauthority etc)
Um shell de login origina ~ / .profile, se existir. Portanto, isso realmente depende, o que você tem em seu ~ / .profile?
Geralmente são diferenças de variáveis de ambiente, como o PATH, ou o prompt (variável de ambiente PS1), mas obviamente pode haver outras diferenças. Isso realmente depende do que você coloca nos scripts de configuração do shell.
de man su
-, -l, --login
make the shell a login shell
então a próxima pergunta é o que é um shell de login e como ele difere de um shell que não seja de login.
Em man bash
em INVOCATION
você pode ler uma seção longa e pedante, que se resume a algo como: o shell de login executa o (s) arquivo (s) profile
(por exemplo, /etc/profile
e ~/.bash_profile
) O shell interativo de não-login executa os arquivos bashrc
.