sudo -i 和 ~/.pam_environment

sudo -i 和 ~/.pam_environment

我已改用~/.pam_environment用于设置用户环境变量,并且效果很好。 PAM 负责设置一切,无论我使用什么 shell、如何使用它等等。我注意到问题的一个地方是使用 ; 打开交互式 shell 时sudo -i。好像~/.pam_environment没用过。例如,如果我想切换到 user foo,我会运行sudo -iu foo.执行此操作后,不会/home/foo/.pam_environment设置中指定的任何环境变量。

我发现与这个主题有关的所有事实是,它sudo不会将大多数(如果不是全部)环境变量转移到创建的进程中。但是,我不想保留旧的环境变量;我只是想向我要更改的用户致敬。

有没有办法做到这一点?是否有原因(安全?)这不是默认行为?

答案1

sudo 环境变量由 sudoers 文件控制。按照sudoers 的手册页。默认情况下,sudoers 文件env_reset启用了该选项,因此设置了最小环境。您可以通过env_checkenv_keep选项将变量列入白名单。另外,sudo 的 PATH 是由secure_path选项控制的。

相关内容