我搜索到的所有地方都没有答案。这是我的问题。
我在linux中,我可以轻松地以root身份运行所有iptables函数。我想授权特定用户也使用所有iptable函数。每次我尝试从授权用户(root除外)访问它时,我都会收到此错误:
" iptables v1.4.7:无法初始化iptables表`过滤器':权限被拒绝(你必须是root)也许iptables或你的内核需要升级。"
然后我尝试了chown root:user iptables以及符号iptables链接到的所有文件,以便用户可以访问它。此方法适用于我希望授权用户访问的所有其他文件,但不适用于iptables。
我需要答案的原因是因为我想在php中编写代码,允许用户阻止和取消阻止IP地址访问整个服务器的任何部分。我有太多的黑客尝试,我希望能够通过点击几下来禁用那些黑客IP,而不是总是以root身份访问shell以手动删除它们。
任何想法?
答案 0 :(得分:0)
你可以使用' sudo'命令允许普通用户以root身份运行命令。
这可能很危险,您需要非常小心地正确编码。
答案 1 :(得分:0)
Linux确实有一个基本的细粒度capabilities系统。但关键词是 rudimentary 。 According to strongSwan,
iptables
无法处理功能,也不允许非root用户插入规则,即使该用户具有所需的功能。
您不仅需要root权限来操纵规则,还需要加载其他内核模块。
因此,sudo
是您最好的选择 - 如果您的本地用户也可能存在敌意,请谨慎行事。您也可以使/sbin/iptables
SUID root,但我不推荐它。