非root运行wireshark
CAP_NET_ADMIN – Allow various network-related operations (e.g., setting privileged socket options, enabling multicasting, interface configuration, modifying routing tables).
CAP_NET_RAW – Permit use of RAW and PACKET sockets.
CAP_NET_ADMIN allows us to set an interface to promiscuous mode, and CAP_NET_RAW permits raw access to an interface for capturing directly off the wire. These capabilities are assigned using the setcap utility.
Enabling Non-root Capture
若是没有 setcap 这个程序,请自行安装。
1首先下载libcap
2.若是系统里面没有 wireshark 组,建立一个,而后把本身添加到这个组:
sudo groupadd wireshark
sudo usermod -a -G wireshark jieen
# 或者sudo gpasswd -a jieen
在把本身添加到wireshark 组以后,一般状况下你要登出而后再登入才能生效,
你还能够运行这个来强制使新建立的组生效(注意,等下你要在同一个terminal中
运行 wireshark 命令来启动wireshark才能成功):
newgrp wireshark
下面咱们修改dumpcap 的权限,使它属于 wireshark 组,而后,咱们让这个组
拥有执行权限:
sudo chgrp wireshark /usr/local/bin/dumpcap
sudo chmod 754 /usr/local/bin/dumpcap
3.Grant Capabilities
sudo setcap cap_net_raw,cap_net_admin=eip /usr/local/bin/dumpcap
# 或者:
sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/local/bin/dumpcap
而后 咱们看下:
sudo getcap /usr/local/bin/dumpcap
/usr/local/bin/dumpcap = cap_net_admin,cap_net_raw+eip
而后运行下wireshark , 是否是不要root也能抓包啦.