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.

相关内容