![允许用户查看加载了多少条 iptables 规则,但看不到实际内容?](https://linux22.com/image/48727/%E5%85%81%E8%AE%B8%E7%94%A8%E6%88%B7%E6%9F%A5%E7%9C%8B%E5%8A%A0%E8%BD%BD%E4%BA%86%E5%A4%9A%E5%B0%91%E6%9D%A1%20iptables%20%E8%A7%84%E5%88%99%EF%BC%8C%E4%BD%86%E7%9C%8B%E4%B8%8D%E5%88%B0%E5%AE%9E%E9%99%85%E5%86%85%E5%AE%B9%EF%BC%9F.png)
我想允许用户检查过滤表中存在多少规则,但无法查看实际规则,这可能吗?
从字面上看,我的意思是iptables -L | wc -l
(我知道这是错误的),但是 sudo 似乎不支持这样的管道命令,我的意思是,目前如果我想允许这样做,我需要授予运行权限iptables -L
而不是iptables -L | wc -l
有什么想法吗?
答案1
创建一个脚本来运行命令以获取 iptables 规则的数量。我会建议这样的事情:
#!/bin/sh
/sbin/iptables -L | grep -Ecv '^$|^Chain |^target'
将脚本保存在 /usr/local/bin 中,使其可执行并检查只有 root 可以写入它。推荐模式:0555
编辑sudoers
以允许用户使用 sudo 运行该脚本。