"Um shell de login interativo é iniciado após um login bem-sucedido, usando / bin / login, lendo o arquivo / etc / passwd. Essa chamada de shell normalmente lê / etc / profile e seu equivalente privado ~ / .bash_profile na inicialização.
Um shell interativo sem logon normalmente é iniciado na linha de comando usando um programa shell (por exemplo, [prompt] $ / bin / bash) ou pelo comando / bin / su. Um shell interativo sem login também é iniciado com um programa de terminal, como xterm ou konsole, a partir de um ambiente gráfico. Esse tipo de chamada de shell normalmente copia o ambiente pai e, em seguida, lê o arquivo ~ / .bashrc do usuário para obter instruções adicionais de configuração de inicialização. "
Http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html
Portanto, eu não colocaria variáveis de ambiente no bashrc, porque isso não é apenas contra a convenção comum, mas você também perderá suas variáveis bashrc ao chamar um terminal de um ambiente gráfico da área de trabalho.
Em Redhat no /etc/profile
eu encontrei este comentário:
"Aliases e funções em todo o sistema devem entrar em / etc / bashrc. Variáveis de ambiente pessoais e programas de inicialização devem entrar em ~ / .bash_profile. Aliases e funções pessoais devem estar em ~ / .bashrc."
Portanto, se você deseja definir variáveis de ambiente com base no usuário, faça-o no arquivo .bash_profile do usuário.
Indo para o que .bash_profile
eu li:
"Variáveis de ambiente pessoal e programas de inicialização.
Aliases e funções pessoais devem estar em ~ / .bashrc. Variáveis de ambiente de todo o sistema e programas de inicialização estão em / etc / profile. Os aliases e funções do sistema estão em / etc / bashrc. "
Conclusão
Se você deseja que apenas o root veja programas residindo, por exemplo, em / sbin
eu adicionaria esse caminho ao .bash_profile
arquivo raiz . Mas se você quiser cada usuário para ver o que raiz programas específicos estão instalados em sua caixa Gostaria de colocar /sbin
em /etc/.profile
. Agora, todo usuário pode usar o preenchimento de guias para procurar programas específicos de raiz e, se necessário, elevar os direitos.
Caso especial: SSH
Quando o ssh é iniciado com uma linha de comando, um shell de login interativo é iniciado. Mas neste caso /etc/profile
não é lido. Quando defini variáveis de ambiente no .bash_profile
arquivo de cada usuário, ele trabalhou com o ssh.
~/.profile
é outra opção válida também