Por que o .pam_environment não inclui $ HOME no meu novo caminho?

4

Eu criei um arquivo /home/myname/.pam_environment contendo

PATH DEFAULT=${PATH}:${HOME}/apps/flyway

Mas meu novo caminho não termina com /home/myname/apps/flyway . Porque não?

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/apps/flyway
    
por Richard 28.01.2016 / 13:09

2 respostas

4

Aparentemente, uma questão antiga (como em 15 anos). A "correção" para eles foi:

* Note that HOME may not be useful in pam_environment, closes: #109281

O site Linux PAM também diz o mesmo:

Note that many environment variables that you would like to use may not be set by the time the module is called. For example, HOME is used below several times, but many PAM applications don't make it available by the time you need it.

Aparentemente, alguém se incomodou com o patch pam_env para ele no Fedora.

De qualquer forma, em sistemas baseados em Debian, uma maneira crua é usar:

HOME=/home/@{PAM_USER}

Antes de referenciar ${HOME} . Isso pode ser feito em /etc/security/pam_env.conf , por exemplo. Naturalmente, isso será interrompido quando o diretório pessoal do usuário não for /home/$USER .

    
por 28.01.2016 / 13:54
1

A partir do PAM versão 1.2.0, você pode usar @{HOME} ao invés de ${HOME} e ele funcionará consistentemente:
link

    
por 04.02.2016 / 00:03