我试图禁止除“neta”组成员之外的所有用户访问 IP 1.2.3.4。这是我专门为此创建的一个新组。
iptables -I OUTPUT -o eth0 -p tcp -d 1.2.3.4 -m owner ! --gid-owner neta -j REJECT
Run Code Online (Sandbox Code Playgroud)
这将禁止所有用户访问 1.2.3.4,即使他们是“neta”组的成员。
我有一个用户 xx,他是 xx(主组)和 neta 组的成员。如果我将规则更改为:
iptables -I OUTPUT -o eth0 -p tcp -d 1.2.3.4 -m owner \! --gid-owner xx -j REJECT
Run Code Online (Sandbox Code Playgroud)
除了用户 xx 之外的所有人都无法访问 1.2.3.4。
我将 root 添加到这个组 xx:
usermod -a -G xx root
Run Code Online (Sandbox Code Playgroud)
但是 root 仍然无法访问这个 IP。如果我将主用户的组(root,xx)添加到规则中,一切都按预期工作。
我试着把它分成两个规则来确定(并拒绝日志):
iptables -A OUTPUT -o eth0 -p tcp -d 1.2.3.4 -m owner --gid-owner neta -j ACCEPT
iptables -A OUTPUT -o eth0 …Run Code Online (Sandbox Code Playgroud)