Arch-Linux

為什麼我 su 進入 root 使用者後 pam_env.conf 被忽略?

  • March 13, 2020

我正在嘗試做:

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

這就是我所擁有的/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在此文件末尾添加,則可以(預設情況下)在文件*/etc/environment*中添加 KEY=VAL 對來設置環境變數

引用自:https://unix.stackexchange.com/questions/567690