1.建个新组, 加成员
sudo addgroup no-internet
sudo adduser $your_user -g no-internet 增加本用户入组,不然运行是提示输入密码
2.加iptables规则来禁止组访问网络
iptables -I OUTPUT 1 -m owner --gid-owner no-internet -j DROP
ip6tables -I OUTPUT 1 -m owner --gid-owner no-internet -j DROP #否则使用ipv6的网络依然可以通过
3.通过sg来跑程序(用其他组ID来执行命令)
sg no-internet "ping www.baidu.com"
在快捷方式中添加EXEC = sg no-internet
4.在/etc/network/if-pre-up.d新建iptables-rules 可执行脚本
#!/bin/sh
/usr/sbin/ip6tables -I OUTPUT 1 -m owner --gid-owner no-internet -j DROP
/usr/sbin/iptables -I OUTPUT 1 -m owner --gid-owner no-internet -j DROP
这样网络启动时规则自动加入
https://www.zhihu.com/question/419420632