Shell de login interativo vs gerenciador de exibição X

2

Eu e um amigo estamos trabalhando juntos no RHCSA e nos deparamos com algo que nenhum de nós entende completamente. É assim que pensamos que funciona e estamos nos perguntando se está correto.

Quando você faz login com um login interativo baseado em texto, o shell obtém as configurações de /etc/profile ou ~/.bash_profile (.profile no Debian?). Aqui é onde nos confundimos. Qualquer subshell que surja dessa sessão tem as mesmas configurações que o pai (IE: O que ele obteve de /etc/profile e ~/.bash_profile ?) Ou basicamente esquece todas essas configurações e apenas herda de /etc/bashrc e ~/.bashrc ?

Além disso,

quando você faz o login via X Windows é um shell?

É apenas um gerenciador de sessão com suas próprias configurações especiais? Ou também herda de / etc / profile?

Se eu abrir um aplicativo GUI no X Window, de onde ele está herdando as permissões?

    
por Grant Curell 11.07.2017 / 14:48

1 resposta

0

Acredito que essa pergunta possa ajudar a entender um pouco: Diferença entre o Login Shell e o Non-Login Shell?

Eu apenas responderei pela minha experiência. Se você usar um shell de login interativo, como o bash, ele irá ler / source ~ / .bash_profile quando você fizer o login. Qualquer novo sub-shell que você abrir dentro dessa sessão herdará essas configurações e, além disso, irá fornecer a fonte ~ / .bashrc. É por isso que, em geral, as pessoas colocam suas variáveis de ambiente em .bash_profile e outras coisas como aliases ou o tema de prompt em .bashrc.

Se, no entanto, você usar um gerenciador de exibição para fazer login, por exemplo, lightdm, ele não usa o .bash_profile quando você faz o login. Em vez disso, ele geralmente lê ~ / .xprofile, e qualquer terminal que você iniciar, então, só irá originar ~ / .bashrc (~ / .bash_profile nunca é originado neste caso)

Algumas pessoas criam um arquivo ~ / .profile ou ~ / .env com todas as variáveis de ambiente e configurações globais, e obtêm isso de ~ / .bash_profile, ~ / .xprofile, ~ / .zprofile, etc., para fazer comutação entre shells de login ou gerenciador de exibição mais fácil. Então você ainda pode colocar coisas específicas do shell / x em seus respectivos arquivos. Por exemplo, meu ~ / .xprofile é simplesmente

source ~/.env
volumeicon &
    
por 20.10.2018 / 10:14

Tags