Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2004343
  • 博文数量: 433
  • 博客积分: 918
  • 博客等级: 准尉
  • 技术积分: 3218
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 18:21
个人简介

你是不是暗恋我,那就给我发个消息呀,让我知道o(∩∩)o

文章分类

全部博文(433)

分类: LINUX

2014-05-19 21:49:01

从Linux中第一次启动Wireshark的时候,可能会觉得奇怪,为什么看不到任何一个网卡,比如eth0之类的。这是因为,直接访问这些设备需要 root权限。然后,我就用root权限去用了。当然,这是一个不好的做法。比如Gentoo中就会提示:WIRESHARK CONTAINS OVER ONE POINT FIVE MILLION LINES OF SOURCE CODE. DO NOT RUN THEM AS ROOT.

     那怎么办呢?Wireshark的leader Gerald Combs指出,现在多数Linux发行版都开始实现对raw网络设备使用文件系统权限(能力) ,可以用这个途径从普通用户启动Wireshark。

以下是具体步骤:
1.安装setcap。setcap 是libcap2-bin包的一部分,一般来说,这个包默认会已经装好。
sudo apt-get installlibcap2-bin

2.创建Wireshark组。这一步在安装Wireshark的时候,也会完成。
#sudo groupadd -g wireshark
#sudo usermod -a -G wireshark <自己的用户名>
#sudo chgrp wireshark /usr/bin/dumpcap
#sudo chmod 4755 /usr/bin/dumpcap

3.赋予权限。
#setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap 完成。
可以使用 getcap /usr/bin/dumpcap验证,输出应当是:/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip

现在就可以从自己的普通用户启动Wireshark抓包了。
阅读(6445) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~