Debian 忽略 PAM 環境變數(而 Arch 則不會)

Debian 忽略 PAM 環境變數(而 Arch 則不會)

我的 Debian Sid 系統有一個奇怪的問題。我想在 中設定一個全域環境變量/etc/environment,該變數應該由pam_env模組讀取。不幸的是,重新登入系統後,該變數沒有被設定。

etc/environment在另一個 Arch Linux 機器上,按預期定義了相同的變數集。只是為了測試,我嘗試設定一個本地環境變量,.pam_environment並且在 Debian 上它沒有被定義,而在 Arch 上它是定義的。

我在 Debian 上使用 GDM,在 Arch 上使用 SDDM 作為登入管理器。我缺什麼?我應該查看哪些(PAM 或 GDM)設定檔?

編輯:輸出grep pam_env /etc/pam.d/*

$ grep pam_env /etc/pam.d/*
/etc/pam.d/atd:auth     required        pam_env.so
/etc/pam.d/cron:# Read environment variables from pam_env's default files, /etc/environment
/etc/pam.d/cron:# and /etc/security/pam_env.conf.
/etc/pam.d/cron:session       required   pam_env.so
/etc/pam.d/cron:session       required   pam_env.so envfile=/etc/default/locale
/etc/pam.d/gdm-autologin:session required        pam_env.so readenv=1
/etc/pam.d/gdm-autologin:session required        pam_env.so readenv=1 envfile=/etc/default/locale
/etc/pam.d/gdm-launch-environment:session required        pam_env.so readenv=1
/etc/pam.d/gdm-launch-environment:session required        pam_env.so readenv=1 envfile=/etc/default/locale
/etc/pam.d/gdm-password:session required        pam_env.so readenv=1
/etc/pam.d/gdm-password:session required        pam_env.so readenv=1 envfile=/etc/default/locale
/etc/pam.d/login:# file /etc/security/pam_env.conf.
/etc/pam.d/login:session       required   pam_env.so readenv=1
/etc/pam.d/login:session       required   pam_env.so readenv=1 envfile=/etc/default/locale
/etc/pam.d/polkit-1:session       required   pam_env.so readenv=1 user_readenv=0
/etc/pam.d/polkit-1:session       required   pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
/etc/pam.d/su:# file /etc/security/pam_env.conf.
/etc/pam.d/su:session       required   pam_env.so readenv=1
/etc/pam.d/su:session       required   pam_env.so readenv=1 envfile=/etc/default/locale

答案1

對於後代:如果在 Debian 上,您添加

session required        pam_env.so user_readenv=1

當您使用 GDM 進行密碼登入時, PAM確實/etc/pam.d/gdm-password會套用您的環境變數設定。~/.pam_environment如果您使用其他方式登錄,請在/etc/pam.d.

相關內容