当前位置: 澳门新濠3559 > 操作系统 > 正文

dumpcap需要root权限才能使用的,  第二种方法

时间:2019-11-07 21:41来源:操作系统
这是由于当前用户没有权限运行/usr/bin/dumpcap造成的。/usr/bin/dumpcap是Wireshark的包捕获引擎。   今天在电脑上安装了WIRESHARK软件,在设置interface 时提示"There are nointerfaces on which a capture

这是由于当前用户没有权限运行/usr/bin/dumpcap造成的。/usr/bin/dumpcap是Wireshark的包捕获引擎。

  今天在电脑上安装了WIRESHARK软件,在设置interface 时提示"There are no interfaces on which a capture can be done"  提示没有任何一个网络接口准备好。此提示明显是不对的, 我的网卡明明可以正常上网,网络接口怎么会没有准备好呢?  想着应该是和linux下的普通用户权限有关系。上网google了一下,找到了解决问题的方法, 现在整理下来, 以备后用。

dumpcap需要root权限才能使用的,以普通用户打开Wireshark,Wireshark当然没有权限使用dumpcap进行截取封包。 

先用ls命令看一下dumpcap的权限情况:
xy@debian-vm-1:~$ ls -lah /usr/bin/dumpcap
-rwxr-xr-- 1 root wireshark 95K 1月  23 01:03 /usr/bin/dumpcap

 

 

可以看到,dumpcap属于wireshark组,而该组是有运行权限的,那么只要将用户xy添加到wireshark组即可运行dumpcap。

  思路;即然问题与权限有关系 , 那么解决方法无法有两点, 一个就是直接使用root登陆,这样就可以有足够的权限运行任意程序了, 但显然是不安全的,另外一种方法是通过suid guid等办法给予普通用户执行wireshark的权限。这样相对来说比安全。

虽然可以使用 

dumpcap需要root权限才能使用的,  第二种方法。再看下当前用户xy属于哪个组,使用groups命令,
xy@debian-vm-1:~$ groups

 

 

xy root cdrom floppy audio dip video plugdev netdev bluetooth lpadmin scanner

  第一种方法:使用root用户登陆

sudo wireshark 

可以看到,用户xy属于好几个组,但没有wireshark组。使用以下命令将用户xy添加到wireshark组:
sudo usermod -a -G wireshark xy

       xiaoshancun@xiaoshancun-VM500:~$ sudo wireshark 

 

-a表示为用户追加一个组,即将用户xy加入一个组,但不从原组移除。
-G参数后面紧跟需追加的组名。

  第二种方法: 通过guid形式使当前普通用户可以运行此程序。

但是,以sudo的方式用root打开Wireshark显然是不安全的,也不是很方便,因为得到的封包数据也属于root用户。

注销再进入系统,Wireshark就可以正常运行了,但groups命令还看不到新追加的wireshark组;重启后,才可用groups命令看到新追加的wireshark组。

       root@xiaoshancun-VM500:~# groupadd  -g 130  wireshark

 

       #澳门新濠3559,  新建一个名为wireshark的用户组, 130 是GID,此数字不是固定不变的, 请先查看/etc/group 文件查看最大的GID是多少,然后加1即可。

解决这个问题的办法——可以使用用户组功能使用Wireshark,具体操作: 

      root@xiaoshancun-VM500:~# usermod  -a -G wireshark  xiaoshancun  

 

      #  将当前用户 xiaoshancun 添加到wireshark组中。 使之成为新的组员。

1、添加wireshark用户组  

     root@xiaoshancun-VM500:~# chgrp  wireshark   /usr/bin/dumpcap

 

     #  将/usr/bin/dumpcap  程序的属组更改为wireshark  。

sudo groupadd wireshark 

      root@xiaoshancun-VM500:~# chmod  4750 /usr/bin/dumpcap

 

     修改 /usr/bin/dumpcap  的权限 更改为  4750  添加suid 权限 。 

2、将dumpcap更改为wireshark用户组 

      root@xiaoshancun-VM500:~# setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap 

 

      

sudo chgrp wireshark /usr/bin/dumpcap 

     修改完成还不能直接使用,需要重新登陆一下才可以。需你不想重新登陆可以使用如下命令。

 

     root@xiaoshancun-VM500:~#  newgrp wireshark

3、让wireshark用户组有root权限使用dumpcap (0 - 7 {000,001,······111})

   完屔后就可以使用普通用户执行wireshark 程序了。 

 

   澳门新濠3559 1

sudo chmod 4755 /usr/bin/dumpcap 

 

 

(注意:如果设为4754 Wireshark还是会提示没有权限 ) 

 

4、将需要使用的普通用户名加入wireshark用户组,我的用户是“hackerman”(需要根据具体用户名修改!),则需要使用命令: 

 

sudo gpasswd -a hackerman wireshark 

 

这样就完成了,以普通用户hackerman登陆打开Wireshark就会有权限进行抓包了。

编辑:操作系统 本文来源:dumpcap需要root权限才能使用的,  第二种方法

关键词:

  • 上一篇:没有了
  • 下一篇:没有了