为什么 visudo 会让其他编辑望而却步?

为什么 visudo 会让其他编辑望而却步?

man visudo解释 visudo 将不会(默认情况下)使用EDITOR环境VISUAL变量。

它指出

“如果 visudo 使用的编辑器允许 shell 转义,则没有简单的方法可以阻止用户获得 root shell。”

现在我很困惑安全风险到底在哪里。我相信

  • 只有 root 可以使用 visudo 进行编辑/etc/sudoers
  • 只有 root 可以更改 root 的环境变量
  • root 已经有 root shell

可能有一个用例不成立,但我想不起来。

答案1

严格来说,我认为运行任意编辑器不会带来额外的安全风险visudo。显然,运行的用户visudo已经具有编辑权限/etc/sudoers,因此能够添加允许在系统上执行任何其他命令的规则。因此,无论运行哪个编辑器,用户都可以visudo通过添加新的 sudo 规则来间接执行他们想要的任何内容。

我认为文档中有关EDITORVISUAL环境变量的建议是关于在绕过 sudo 的标准日志记录时执行 root shell(或任意命令)。默认情况下,sudo 将所有成功和不成功的身份验证记录到系统日志中。这为系统管理员提供了有关哪些用户通过 sudo 执行哪些命令的审计跟踪。如果用户使用 进行更改/etc/sudoersvisudo则可以通过校验和或查看文件来查看。但是,如果用户可以通过 获得 root shell visudo,他们就可以执行任意命令,而无需任何审计跟踪。

因此,安全风险与授予 run 权限相同sudo bash,即具有该权限的用户可以获得 root shell 并执行任意代码,而不会限制或记录所运行的命令。

相关内容