PATH não é afetado por .pam_environment

3

Rodando o Ubuntu 13.04, estou tentando adicionar variáveis a PATH para a sessão, que é recomendada para fazer dentro de .pam_environment , mas nada parece funcionar. Aqui está o que parece:

JAVA_HOME          DEFAULT=/usr/lib/jvm/java-7-oracle
IDEA_HOME          DEFAULT=/usr/local/idea-IU-129.451/bin
LIGHTTABLE_HOME    DEFAULT=/usr/local/LightTable
CLOUDIFY_HOME      DEFAULT=/home/eliranm/builds/gigaspaces-cloudify
PATH               DEFAULT=${PATH}    OVERRIDE=${PATH}:${JAVA_HOME}:${IDEA_HOME}:${LIGHTTABLE_HOME}:${CLOUDIFY_HOME}

Parece que todas as variáveis estão definidas, mas o PATH , ou que é sobrescrito de alguma forma. Eu tentei preceder ou anexar a variável ${PATH} , usar apenas DEFAULT , OVERRIDE , tentei apenas definir um caminho codificado como um valor, tudo em vão.

Estou seguindo as recomendações da comunidade de ajuda do Ubuntu e quero evitar concatenar caminhos codificados para PATH inside /etc/environment , pois não é o escopo certo, além disso, será difícil manter com sem variáveis.

Outros podem ser afetados por este problema, conforme declarado aqui , mas ninguém forneceu uma solução até agora.

Como fazer isso funcionar?

    
por Eliran Malka 06.06.2013 / 21:33

2 respostas

3

Acho que usar a variável $PATH dentro do escopo de /etc/environment ou ~/.pam_environment não é resolvido, mas atribuído exatamente como é literalmente.

Na verdade eu vejo usando $PATH ou qualquer variável dentro de ~/.pam_environment sendo desencorajada na maioria dos posts eu li como aqui: Por que minha variável de ambiente não é configurada ?

Então, eu realmente não sei por que aqui ( variáveis de ambiente de toda a sessão ) use $PATH nele.

Eu sei que o Debian removeu a análise do ~/.pam_environment local, pois é um alto risco de segurança.

De qualquer forma, para mim, os dois arquivos /etc/environment e ~/.pam_environment usam uma sintaxe mais simples (simples KEY=VAL pares para cada linha) e então /etc/security/pam_env.conf ( VARIABLE [DEFAULT=[value]] [OVERRIDE=[value]] ). Então, talvez nenhuma referência à variável possa ser feita dentro deles.

    
por MaKr0 26.07.2013 / 09:07
2

Eu tenho me deparado com isso também porque eu estava tentando fazer da maneira que a documentação dizia (eu tradicionalmente uso sistemas baseados no Redhat).

Eu acho que usar $ {PATH} só funciona se o seu caminho foi originalmente definido no arquivo /etc/security/pam_env.conf. Parece-me que o caminho original está definido em /etc/login.defs e, em seguida, não está disponível.

Eu voltei a definir os valores em ~ / .profile, passei muito tempo depurando essa coisa aparentemente simples. Isso me faz pensar o que outros usuários do Ubuntu fazem, não podemos ser os primeiros a querer acrescentar à variável path. Eu estou supondo que eles fizeram o mesmo e ignoraram o ~ / .pam_environment.

    
por Mark E. Scott Jr. 19.08.2013 / 21:20