读一安全指南关于如何强化 Arch Linux,我遇到了以下提示:导出EDITOR=nano visudo
被认为是一个严重的安全风险。
提示:
要使用受限版本
nano
代替vi
[visudo
add 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
成为$EDITOR
并root
拥有世界。
一般来说,名称不以“ /
”开头的可执行文件可以通过以下伪代码找到:
# executing "nano"
for p in $( echo $PATH | tr ':' ' ' ) ; do
[[ -x $p/nano ]] && exec $p/nano
done
因此,如果在早于的nano
目录中存在名为 的可执行文件,则会执行该可执行文件。这就是为什么你应该使用它。$PATH
/usr/bin
editor=/usr/bin/nano visudo
当前目录。 “ .
”不应自动包含在上述伪代码中。人们可以但不应该将“ .
”放入您的$PATH
.如果我诱骗您进入cd /media/$USER/Found
(您在停车场中找到的 USB 密钥会自动挂载的位置),.
在 早期使用“” $PATH
,并且nano
在该目录中命名了我的脚本。EDITOR=nano visudo
将运行./nano
(我的nano
)。游戏结束。