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

前端之家收集整理的这篇文章主要介绍了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保存.有点傻我认为……

猜你在找的Linux相关文章