~/.pam_environment 对 root 不起作用

~/.pam_environment 对 root 不起作用

我想使用zshroot我的普通用户oh-my-zsh已经oh-my-zsh克隆了,所以我需要做的就是将ZSH环境变量设置为该目录。所以我把它放在我的 中/root/.pam_environment

ZSH=/home/madhead/oh-my-zsh

这是该文件中唯一的字符串。但是当我尝试以 root 身份登录时(完全重启后),变量未设置。我尝试了和sudo susudo -iu root以下是有关所用软件的一些信息:

# lsb_release -a                                                                                                                                                     
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.3 LTS
Release:        14.04
Codename:       trusty

# zsh --version                                                                                                                                                      
zsh 5.0.2 (x86_64-pc-linux-gnu)

此外,相同的设置(/root/.pam_environment)在我的装有 Arch Linux 的笔记本电脑上也能正常运行。

答案1

官方的文档

...sudo 具有重置环境和设置安全路径的默认策略(此行为在 /etc/sudoers 中定义)。

...您可以通过在 /etc/sudoers 中添加一些明确的环境设置来设置 sudo 不重置某些环境变量。

就这么做

user@here:$ sudo su
root@here:$ visudo

并添加这一行:

Defaults env_keep += "ZSH"

要检查你的变量是否存在出口, 比须藤苏再次运行出口或者

printenv ZSH

相关内容