Entendo que o primeiro é carregado antes do último, mas qual é a diferença conceitual? Existem boas razões para definir algumas variáveis em uma e não em outra? Exceto o fato de que /etc/environment
parece existir para configurar o ambiente para todos os processos executados pelo sistema, enquanto /etc/profile
é para configurar o ambiente usado e propagado a partir do shell de login, correto?
Além disso, em uma nota lateral, qual programa tradicionalmente lê /etc/environment
? Está relacionado ao POSIX, ou apenas a uma convenção?
VAR=value
entrou em vigor em um shell (após o login novamente)./etc/environment
não faz parte do POSIX, pertence ao PAM (Pluggable Authentication Module) e apenas os programas compilados com suporte ao PAM podem usá-lo (principalmente sistemas de login, que iniciam o shell ou o ambiente do usuário). Isso significa que nem é lido pelo seu shell.Você pode ver os programas usando
/etc/environment
comgrep -l pam_env /etc/pam.d/*
.Então,
/etc/environment
é usado para definir variáveis para programas que geralmente não são iniciados a partir de um shell.fonte