.pam_environment가 새 경로에 $HOME을 포함하지 않는 이유는 무엇입니까?

.pam_environment가 새 경로에 $HOME을 포함하지 않는 이유는 무엇입니까?

나는/home/myname/.pam_environment 문서포함하다

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

하지만 나의 새로운 길은 끝나지 않았습니다 /home/myname/apps/flyway. 왜 안 돼?

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/apps/flyway

답변1

@{HOME}PAM 버전 1.2.0부터 대신 사용할 수 ${HOME}있으며 일관되게 작동합니다. https://github.com/linux-pam/linux-pam/commit/73bdfac8c091492f466342feb8f2f5daa2f4c39b

답변2

이것은 분명히하나오래된질문(15세 정도). 당시 "수정"은 다음과 같습니다.

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

리눅스 PAM 사이트나도 이런 말을 많이 했다.

사용하려는 많은 환경 변수는 모듈이 호출될 때 설정되지 않았을 수 있습니다. 예를 들어 HOME은 아래에서 여러 번 사용되지만 많은 PAM 애플리케이션에서는 필요할 때 이를 사용할 수 없도록 합니다.

분명히 누군가가 문제를 해결했습니다.pam_env패치해라페도라에서.

어쨌든 데비안 기반 시스템에서 대략적인 접근 방식은 다음을 사용하는 것입니다.

HOME=/home/@{PAM_USER}

인용하기 전에 ${HOME}. /etc/security/pam_env.conf예를 들어, 이 작업은 에서 수행할 수 있습니다. 물론, 이는 존재하지 않는 사용자의 홈 디렉토리를 손상시킬 것입니다 /home/$USER.

관련 정보