2017年5月1日 星期一

避免 Wine 的應用程式開啟網路

參考文章: https://askubuntu.com/questions/19346/how-to-block-internet-access-for-wine-applications
有些 windows 應用程式太邪惡了, 許多病毒或是木馬甚至原版軟體都有可能偷偷上網傳遞資訊,使用者根本無法察覺,如果將它安裝成 Wine 的應用程式想必也不例外,因此有必要限制 Wine 的網路行為.在 linux mint 可以用 groupadd 產生新的群組,用 adduser 將使用者加入這新的群組,再透過 iptables 阻斷群組的網路行為:
       sudo groupadd  mswin
       sudo adduser  mint  mswin
       sudo iptables  -A  OUTPUT  -m  owner  --gid-owner  mswin  -j  REJECT

往後只要用 sg 先切換使用群組,之後才載入 Wine 的應用程式(例如內建瀏覽器 wine iexplore.exe),這樣就能徹底隔絕 Wine 應用程式的網路運作了.
       sg  mswin  "wine iexplore.exe"

如果要用滑鼠雙擊就可執行的 Wine 應用程式,可以編輯一個檔案副檔名用 .desktop 命名, Exec 指定內容則改用 linux 的 sg 切換群組並包住 env 命令,像這樣:
[Desktop Entry]
Exec=sg mswin "env  WINEPREFIX=/home/mint/.wine  wine  'c:\\windows\\notepad.exe'"
Type=Application

要注意的是 env 命令的部份要用引號括起來. 在 wine 的應用程式敘述用單引號而整個 env 部份則改用雙引號.單引號與雙引號的不同在於:單引號裡面內容,如果有$變數或執行()命令或者跳脫字元\時,並不會展開賦值(evaluate),而是一成不變的照實敘述,但如果放在雙引號裡面則會先展開變數才會執行後續動作.記憶口訣: 一層不變(一成不變), 二度就要(二度就樂一ㄠˋ)

沒有留言: