Por que minha variável de ambiente não é configurada?

3

Eu tenho que definir uma variável de ambiente chamada GDK_NATIVE_WINDOWS para corrigir o problema com os botões do Eclipse no Ubuntu . Para definir a variável de ambiente, adicionei a seguinte linha a ~/.pam_environment .

GDK_NATIVE_WINDOWS DEFAULT=true

Surpreendentemente, a variável de ambiente não é definida quando eu echo $GDK_NATIVE_WINDOWS em um terminal. No entanto, todas as outras variáveis de ambiente listadas em ~/.pam_environment estão definidas corretamente. Além disso, quando mudo para um tty, por ex. Alt+Ctrl+F1 , a variável de ambiente é definida corretamente. Alguém pode dizer o que há de errado com a configuração dessa variável de ambiente em ~/.pam_environment ?

    
por reprogrammer 12.04.2010 / 18:39

5 respostas

-1

Parece que é apenas um bug que minha variável de ambiente não está sendo definida.

    
por 24.04.2010 / 00:06
3

Atenha-se à sintaxe simples "key = value" no arquivo ~ / .pam_environment. Não PADRÃO, OVERRIDE, $ {HOME}, nada. Apenas chave = valor. A página man que você ligou é para pam_env.conf, apenas. Veja "man 8 pam_env" que não promete mais nada "Este módulo também pode analisar um arquivo com pares simples KEY = VAL em linhas separadas.".

A propósito, colocar algo como PATH = $ {PATH}: more / paths em ./pam_environment é uma ótima maneira de quebrar quase qualquer tentativa de login, já que o PATH é definido como $ {PATH}: more / paths < em> literalmente (não há muito a ser encontrado lá). Para resgatar, "/ bin / mv .pam_environment out_of_the_way" e faça o login novamente.

    
por 03.03.2013 / 14:47
2

Como você identificou, suas variáveis de ambiente devem ser definidas em ~/.pam_environment conforme recomendado no link . Mais fácil falar do que fazer;)

É possível que você tenha passado pela mesma lacuna de configuração que existia para mim. Veja a solução alternativa para a página inicial criptografada abaixo.

Meu ~/.pam_environment :

PATH            DEFAULT=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:${HOME}/bin
IDEA_JDK        DEFAULT=${HOME}/Applications/jdk

Por que o caminho estático feio? ${PATH} não funcionaria para mim. Eu tentei meu login várias vezes tentando contornar isso, então eu estou furando com a cópia estática feia dos padrões:)

Solução para Pastas Domésticas Criptografadas

Nas versões do Ubuntu até e incluindo o Precise 12.04 Beta 2, se você estiver usando um diretório pessoal criptografado, precisará modificar /etc/pam.d/common-session para que ele carregue ~/.pam_environment . Esta solução aparentemente funciona para versões anteriores, mas eu não testei isso.

Guenther Montag (g-montag ) escreveu em 2010-08-19:

This seems to be an issue with encrypted home directories. I added

session required pam_env.so

at the end of /etc/pam.d/common-session and now ~/.pam_environment gets read. On another system without encrypted home directories (also 10.04) the work around is not needed. Perhaps in my case the system tries to read ~/.pam_environment before it is decrypted.

    
por 04.04.2012 / 06:04
1

Você tem um espaço entre GDK_NATIVE_WINDOWS e DEFAULT = true. Isso é diferente do exemplo que você vinculou.

Tente:

GDK_NATIVE_WINDOWS = true

    
por 12.04.2010 / 21:32
0

Acho que, quando você inicia um terminal, não está iniciando uma sessão de login. é uma sessão de terminal e funciona com regras diferentes. Eu nunca tive a diferença e a necessidade de diferenciar, mas em qualquer caso eu sugiro que você use ~ / .bash_profile e / ou ~ / .bashrc para obter o mesmo resultado, a menos que você tenha sugerido usar o pam por razões específicas.

    
por 12.04.2010 / 19:16