iTa*_*ayb 7 permissions sudo shell-script
我想允许特定用户只能使用 sudo /sbin/iptables
。
我有一个配置 iptables 的 bash 脚本。问题是配置/sbin/iptables
为 sudoable 是不够的 - 脚本本身也必须是 sudoable。
问题是该文件可以由用户编辑(他可能会更改那里的配置),使他能够以 root 身份运行任何命令。
解决这个问题的正确方法是什么?
我可以看到两种方法:
允许用户使用/sbin/iptables
通过sudo
没有任何限制(这是危险的东西,这意味着你信任的用户以某种方式),并与用户的权限运行该脚本。该脚本将在sudo
每次/sbin/iptables
需要时调用。这是假设脚本执行速度很快,因为最终将需要定期输入一些密码¹。
/sbin/iptables
不受限制地使用是危险的。允许用户仅通过 调用脚本sudo
。
/sbin/iptables
受脚本限制。关于你提到的问题:如果脚本是由我们拥有的,root
并且具有通常的权限:rwxr-xr-x
,其他用户无法修改它,他们只能执行它(最终通过sudo
获得更多权限)。
对于解决方案 2,对于 shell 脚本(与更强大的二进制文件/程序相比),请注意环境变量和可以修改脚本执行的几个外部因素。检查您的 sudo 配置是否正确重置了每个潜在有害变量的定义。
—
1. 其实sudo
可以根据需要配置NOPASSWD
。