我需要允许特定用户访问这些命令:
sudo sync
echo 3 | sudo tee /proc/sys/vm/drop_caches
(这位特定的开发人员正在进行一些数据库性能测试,并刷新 fs 缓存为他们提供更清晰的数字,因此请不要评论我们为什么使用此命令。)
我可以使用 sudo 将用户限制为非常特定的命令,例如tee /proc/sys/vm/drop_caches
?
据我了解,我只能将它们限制为命令tee
本身。然而,我不想让用户能够tee
以 root 身份使用他们想要的任何东西。
我想另一个选择是给予他们对该特定文件的写访问权限,但这是否是疯狂的谈话,即给予对文件的一些非管理员写访问权限/proc
?
任何关于限制这种情况的最佳方法的指示或想法都将受到赞赏。
答案1
Sudo 接受命令行参数。因此,您可以继续对 sudoers 文件进行更改,以便当参数为 /proc/sys/vm/drop_caches 时允许使用 tee,而对于其他所有内容,sudo 将拒绝执行。如果您想要更严格的执行,请在 /usr/bin 或 /usr/local/bin 中的某个位置放置一个整洁的 shell 脚本替换,并具有更严格的权限,然后在 sudoers 配置中,允许用户以 root 身份在该特定位置上执行脚本主持人。