在 visudo 上下文中,导出 EDITOR="nano visudo" 如何被视为严重的安全风险?

在 visudo 上下文中,导出 EDITOR="nano visudo" 如何被视为严重的安全风险?

读一安全指南关于如何强化 Arch Linux,我遇到了以下提示:导出EDITOR=nano visudo被认为是一个严重的安全风险。

提示:

要使用受限版本nano代替vi[ visudoadd to /etc/sudoers],

Defaults editor=/usr/bin/rnano

出口EDITOR=nano visudo被视为严重的安全风险,因为所有东西都可以用作EDITOR

我不确定为什么在使用invisudo指定默认编辑器的上下文中提到这一点?Defaults editor=/user/bin/rnano/etc/sudoers

此外,不应$EDITOR只指定一个编辑器,或者它是否可以指定多个由空格分隔的编辑器?

由于EDITOR=nano visudo没有指定完整路径,因此可以通过将调用的任何二进制文件放入nano当前目录来利用它,但是如何使用它来利用visudo呢?

额外奖励:指南是否应该更正为使用引号(如 中所示EDITOR="nano visudo")来设置$EDITOR

答案1

EDITOR=nano visudo 只需运行visudo,告诉它搜索您$PATH要使用的编辑器。既然$PATH已经在$USER自己的掌控之中,...

希望它将visudo成为$EDITORroot拥有世界。

一般来说,名称不以“ /”开头的可执行文件可以通过以下伪代码找到:

# executing "nano"
for p in $( echo $PATH | tr ':' ' ' ) ; do
    [[ -x $p/nano ]] && exec $p/nano
done

因此,如果在早于的nano目录中存在名为 的可执行文件,则会执行该可执行文件。这就是为什么你应该使用它。$PATH/usr/bineditor=/usr/bin/nano visudo

当前目录。 “ .”不应自动包含在上述伪代码中。人们可以但不应该将“ .”放入您的$PATH.如果我诱骗您进入cd /media/$USER/Found(您在停车场中找到的 USB 密钥会自动挂载的位置),.在 早期使用“” $PATH,并且nano在该目录中命名了我的脚本。EDITOR=nano visudo将运行./nano(我的nano)。游戏结束。

相关内容