在 Linux mint , 預設使用者是 mint, 可以切換成 su, 用 groupadd 建立一個新群組(例如 wine), 後續就能用 usermod -aG 添加使用者
#!/bin/bash
wineuser=mint
egrep -qs "^wine:" /etc/group || sudo groupadd wine
egrep -qs "^wine:.*:$wineuser" /etc/group || usermod -aG wine $wineuser
使用 iptables 的匹配選項 owner 可以針對群組開創一條新規則, 將該群組的使用者與網路斷然隔絕:sudo iptables -A OUTPUT -m owner --gid-owner wine -j REJECT
要注意的是 group 增添新成員, 必須重新開機才會生效, 因此若寫成 script 執行, 必須先執行一次再重開機,若將上述指令一同放在 /etc/rc.local 裏面時,至少要重新開機兩次才能用 sg 切換群組!
未來開啟終端機, 要執行程式時, 只要下命令前加上 sg wine 先切換成新群組 wine 後才執行程式, 就可以限制該程式上網的能力,例如寫程式常用的 vscode, 執行命令是 code, 用以下命令, 就能防止它無端傳送封包:
sg wine code
若想要暫時解禁, 可以在 vscode 裏面先開啟終端機, 接著切換成 mint 原始群組, 讓終端機未來所要執行的程式恢復使用網路功能:
sg mint
...
運作到最後,在終端機下達離開指令
exit
終端機就會再度禁止網路運作
沒有留言:
張貼留言