Acabei de instalar o Debian 8.6. Eu quero definir variáveis de ambiente de proxy http para todos os usuários, então eu editei /etc/environment
seguindo o guia em wiki do Debian . No entanto, após a reinicialização, apenas as variáveis de ambiente do usuário root são definidas.
Este é o meu /etc/environment
content:
http_proxy=http://localhost:8123/
https_proxy=http://localhost:8123/
ftp_proxy=http://localhost:8123/
no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
HTTP_PROXY=http://localhost:8123/
HTTPS_PROXY=http://localhost:8123/
FTP_PROXY=http://localhost:8123/
NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com"
E eu confiro o resultado por:
echo $http_proxy
Ao fazer login como root com sudo su
, ele me dá o resultado correto ( http://localhost:8123/
), mas ao usar o usuário normal, as variáveis não são definidas. Eu também verifico todas as variáveis de ambiente com env
.
Atualização:
Aqui vêm mais testes.
Eu adiciono SET_BY_ETC_ENVIRONMENT="hello"
a /etc/environment
, export SET_BY_ETC_PROFILE="hello"
a /etc/profile
e export SET_BY_HOME_PROFILE="hello"
a /home/perqin/.profile
.
E aqui está o resultado:
user | login via | SET_BY_ETC_ENVIRONMENT | SET_BY_ETC_PROFILE | SET_BY_HOME_PROFILE
-------|------------------------------|------------------------|--------------------|--------------------
perqin | GUI | no | no | no
root | GUI | no | no | no
perqin | sudo su in terminal from GUI | yes | no | no
root | su in terminal from GUI | yes | no | no
perqin | ssh | yes | yes | yes
root | ssh | yes | yes | no
Portanto, profile
é executado apenas no login do ssh. E nenhum deles é aplicado na GUI! Eu estou usando o Debian 8.6 com o ambiente de desktop LXDE.
Atualização 12.14
A saída de grep pam_env /etc/pam.conf /etc/pam.d/*
é a seguinte:
/etc/pam.d/atd:auth required pam_env.so
/etc/pam.d/cron:# Read environment variables from pam_env's default files, /etc/environment
/etc/pam.d/cron:# and /etc/security/pam_env.conf.
/etc/pam.d/cron:session required pam_env.so
/etc/pam.d/cron:session required pam_env.so envfile=/etc/default/locale
/etc/pam.d/lightdm:# Load environment from /etc/environment and ~/.pam_environment
/etc/pam.d/lightdm:auth required pam_env.so envfile=/etc/default/locale
/etc/pam.d/lightdm-autologin:# Load environment from /etc/environment and ~/.pam_environment
/etc/pam.d/lightdm-autologin:auth required pam_env.so envfile=/etc/default/locale
/etc/pam.d/lightdm-greeter:# Load environment from /etc/environment and ~/.pam_environment
/etc/pam.d/lightdm-greeter:auth required pam_env.so envfile=/etc/default/locale
/etc/pam.d/login:# file /etc/security/pam_env.conf.
/etc/pam.d/login:session required pam_env.so readenv=1
/etc/pam.d/login:session required pam_env.so readenv=1 envfile=/etc/default/locale
/etc/pam.d/polkit-1:session required pam_env.so readenv=1 user_readenv=0
/etc/pam.d/polkit-1:session required pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
/etc/pam.d/sshd:# /etc/security/pam_env.conf.
/etc/pam.d/sshd:session required pam_env.so # [1]
/etc/pam.d/sshd:session required pam_env.so user_readenv=1 envfile=/etc/default/locale
/etc/pam.d/su:# file /etc/security/pam_env.conf.
/etc/pam.d/su:session required pam_env.so readenv=1
/etc/pam.d/su:session required pam_env.so readenv=1 envfile=/etc/default/locale