2010年3月23日 星期二

不用 sudo 以 non-root 身份用 Wireshark 抓封包

在 Ubuntu 上安裝好 Wireshark,想抓封包時卻找不到網路卡。原來必須執行 "sudo wireshark" 才有足夠的權限。這樣子除了麻煩之外,還有一個不方便:封包 存檔之後是屬於 root 所有,處理起來相當不便。

經過一番努力,找出幾個解決方案。

方案一:

最簡單的作法是安裝完 Wireshark 之後執行 "sudo chmod u+s /usr/bin/dumpcap"。這樣子就可以一般使用者的身份抓封包了。關鍵在於 "dumpcap" 就是那個需要 root 權限的部份,上述指令讓一般使用者也可以 root 的身份執行 "dumpcap"。

這種方法雖然簡單,但對講求安全的人來說卻不太妙。因為所有 人都可以執行這隻需要 root 權限的程式。方案二是一個改進的方法。

方案二:

改進的方式就是只開放給特定 group 的人以 root 身份執行 "dumpcap":

1. 執行 "sudo vi /etc/group" 並新增一個 group (建議叫做 "wireshark"),然後將自己加入此 group
2. 執行 "sudo chgrp wireshark /usr/bin/dumpcap",將 dumpcap 改為 wireshark group
3. 執行 "sudo chmod 4754 /usr/bin/dumpcap",只讓屬於 wireshark group 的人可以 root 身份執行 dumpcap

完成上述動作之後,重新登入讓 group 所屬生效。這樣你就可以用原本的身份抓封包了,封包存檔的所有也都屬於原本的身份。

參考資料:

* http://wiki.wireshark.org/CaptureSetup/CapturePrivileges

沒有留言:

張貼留言

How to use simple speedtest in RaspberryPi CLI

  pi@ChunchaiRPI2:/tmp $  wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py --2023-06-26 10:4...