sudoers 的 env_keep 变量未记录的默认值

sudoers 的 env_keep 变量未记录的默认值

我遇到了一些奇怪的行为。

我的 sudoers 文件很短,如下所示:

默认 env_reset
默认 mail_badpass
默认值 secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
根 ALL=(全部:全部) 全部
%admin 全部=(全部) 全部
%sudo ALL=(全部:全部) 全部

(请注意,这是带有反向移植的 3.12 内核的 Ubuntu 13.10)

使用此 sudoers,当我这样做时,sudo env我几乎可以获得所有非特权用户的环境,包括http_proxyhttps_proxy。现在,如果我将此行附加到文件,环境将被剥离:

Defaults env_keep="http_proxy"

我的猜测是,有一个默认值,可以env_keep保存我环境中设置的大部分内容,如果不定义它,env_keep+=则会删除它。

或者这是一个我应该提交的 sudo 错误?

答案1

在排除故障并与鲍勃根访问聊天,我们发现 env_keep 确实有未记录的默认值。

摘自 sudo 的手册页:

     -V -V(版本)选项使 sudo 打印其版本字符串和版本
                 安全策略插件和任何 I/O 插件的字符串。如果调用
                 如果用户已经是 root 用户,则 -V 选项将显示传递给
                 当 sudo 被构建时配置,并且插件可能会显示更详细的信息
                 如默认选项。
用户@主机 $: sudo sudo -V :
[...]
要保存的环境变量:
授权
权威
泰泽
PS2
PS1
小路
LS_颜色
KRB5CCNAME
主机名
展示
颜色
[...]

如果你设置 env_keep 而不附加它,它将覆盖这些值。因此使用Defaults env_keep +="values"

相关内容