sudo
使用并输入密码后,sudo
会记住我们已输入密码,下次使用时无需输入密码。
我担心可能会利用这一事实来欺骗用户(admin/sudoer)执行包含命令的脚本sudo
,以便该脚本可以使用管理员权限。
使用目录和 ls 进行测试
我想我可能可以证明脚本会要求输入密码,这样这个技巧就不起作用了。我做了以下测试。
我创建了一个由 root 拥有的目录 testDir,并使用chmod
我删除了组 (g) 和其他组 (o) 的所有访问权限。我曾经sudo
这样做过,所以从现在开始假设我们处于“记住用户不需要输入密码来使用 sudo”状态。
在 testDir 中,我使用创建了一个 testFile sudo
(此后我们不再需要输入密码来使用 sudo )。
因为我不是root,ls testDir
现在告诉我权限被拒绝。
但是,echo sudo ls testDir| bash
将 testFile 打印到终端。
如果我们不是通过管道将“sudo ls testDir”传递给 bash,而是执行包含该行的 shell 脚本,则行为似乎是相同的sudo ls testDir
。
问题:刚使用过的程序执行时是否应该小心sudo
?