linux – 为什么不sudo -E实际上保护我的环境?

我试图sudo一些自定义路径中的二进制文件.当我运行sudo时,该自定义路径被删除,但是sudo -E应该保留我的路径.为什么不起作用?
$env | egrep ^PATH
PATH=/home/codemonkey/.nvm/v0.6.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/gam
es:/usr/games

$sudo env | egrep ^PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

$sudo -E env | egrep ^PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

我知道如何解决它,我只想知道为什么sudo -E不起作用

解决方法

您可以设置exempt_group选项以告诉sudo为该组中的用户保留PATH.

例如,假设您的用户位于“sys”组中.将以下内容添加到您的sudoers文件中

Defaults exempt_group="sys"

现在你的用户不会为sudo命令重置PATH(这不需要-E).
有关详细信息,请参见the man page.

编辑:必须注意这是一个糟糕的答案.它确实有效,但它有一个副作用我在玩它时没有注意到.它还使该组中的用户免于必须键入其密码.似乎你不能在不允许的情况下获得PATH保存.有点傻我认为……

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...