Linux
補充組的特殊權限
安裝Wireshark後,我必須將我的使用者添加到Wireshark組,以便能夠在沒有 root 訪問權限的情況下擷取數據包。
AFAIK Wireshark 使用libpcap庫,該庫本身使用Netlink 協議從核心基礎設施獲取數據包。Netlink 還需要建構需要 root 訪問權限的 RAW 套接字。
我的假設是:
- 任一wireshark組都具有特殊權限,這使得它(以及該組中的每個使用者)都能夠擷取數據包,而無需成為root 或sudoer。
- 或者它更簡單。Wireshark 只是檢查目前非 root 使用者是否在wireshark組中,如果是,則可以通過setuid之類的方式提升其權限。
但第二個假設是錯誤的,因為wireshark 沒有setuid權限。
那麼是什麼讓wireshark組中的每個使用者都能夠在沒有root 訪問權限的情況下擷取數據包呢?或者以更一般的形式:輔助組如何獲得這樣的權限?
提前致謝。
這兩個選項都不是。權限由 攜帶
dumpcap
,它負責數據包擷取,並具有適當的功能:$ sudo getcap /usr/bin/dumpcap /usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip
它由 擁有
root:wireshark
,並且只能由其所有者和組執行,因此只能由wireshark
組中的使用者使用。有關詳細資訊,請參閱
/usr/share/wireshark/README.Debian.gz
您的系統。