为什么我 su 到 root 用户后会忽略 pam_env.conf?

为什么我 su 到 root 用户后会忽略 pam_env.conf?

我正在尝试做:

su -l

并设置像 PAGER 这样的环境变量但没有成功。我怎样才能实现这个目标?

这就是我所拥有的/etc/pam.d/login

auth       required     pam_securetty.so
auth       requisite    pam_nologin.so
auth       include      system-local-login
account    include      system-local-login
session    include      system-local-login
session    required     pam_env.so readenv=1 user_readenv=1 envfile=/etc/locale.conf

答案1

这就是我所拥有的/etc/pam.d/login

除非你修改过/etc/pam.d/su-l要包含此文件,该文件不相关,因为su -l模仿 login通过切换主目录并重置一些环境变量。

默认/etc/pam.d/su-l(这是由su -l 在 Arch Linux 上)应该看起来像这样:

#%PAM-1.0
auth        sufficient  pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth       sufficient  pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth       required    pam_wheel.so use_uid
auth        required    pam_unix.so
account     required    pam_unix.so
session     required    pam_unix.so

session required pam_env.so如果在此文件末尾添加,则可以(默认情况下)在文件中添加 KEY=VAL 对/etc/环境设置环境变量

相关内容