.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

Linux PAMサイト私もこんな言葉をたくさんした。

使用する多くの環境変数は、モジュールが呼び出されたときに設定されていない可能性があります。たとえば、HOMEは以下で何度も使用されますが、多くのPAMアプリケーションでは必要に応じてそれを使用できません。

明らかに誰かが問題を解決しました。pam_envパッチしなさいFedoraで。

とにかくDebianベースのシステムでは、おおよそのアプローチは次のようなものです。

HOME=/home/@{PAM_USER}

引用する前に${HOME}/etc/security/pam_env.confたとえば、これはで行うことができます。もちろん、これは存在しないユーザーのホームディレクトリを破壊します/home/$USER

関連情報