具有 sudo 和文件权限的特定命令序列

具有 sudo 和文件权限的特定命令序列

我需要允许特定用户访问这些命令:

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 身份在该特定位置上执行脚本主持人。

相关内容