man visudo解释 visudo 不会(默认情况下)使用EDITOR或VISUAL环境变量。
它指出
“如果 visudo 使用的编辑器允许 shell 转义,则没有简单的方法可以阻止用户获得 root shell。”
现在我很困惑安全风险在哪里。我相信
/etc/sudoers可能有一个用例不成立,但我想不出来。
visudo严格来说,我认为运行任意编辑器不会带来额外的安全风险。显然,运行的用户visudo已经拥有编辑权限/etc/sudoers,因此能够添加允许在系统上执行任何其他命令的规则。因此,无论运行哪个编辑器,用户都visudo可以通过添加新的 sudo 规则间接执行他们想要的任何内容。
我认为文档中关于EDITOR和VISUAL环境变量 的建议是关于在绕过 sudo 的标准日志记录的同时执行 root shell(或任意命令)。默认情况下,sudo 将所有成功和不成功的身份验证记录到 syslog。这为系统管理员提供了关于哪些用户正在通过 sudo 执行哪些命令的审计线索。如果用户更改/etc/sudoers为visudo,则可以通过校验和或查看文件来查看。但是,如果用户可以通过 获得 root shell visudo,他们可以在没有任何审计跟踪的情况下执行任意命令。
因此,安全风险与授予运行权限相同sudo bash,即具有该权限的用户可以获得 root shell 并执行任意代码,而不会对运行的命令进行任何限制或记录。
| 归档时间: |
|
| 查看次数: |
331 次 |
| 最近记录: |