权限不够

作者: 计算机操作系统  发布:2019-10-24

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

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

先用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的权限。这样相对来说比安全。

再看下当前用户xy属于哪个组,使用groups命令,
xy@debian-vm-1:~$ groups

 

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

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

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

       xiaoshancun@xiaoshancun-VM500:~$ sudo wireshark 

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

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

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

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

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

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

澳门新萄京app,      #  将当前用户 xiaoshancun 添加到wireshark组中。 使之成为新的组员。

本文由澳门新萄京app发布于计算机操作系统,转载请注明出处:权限不够

关键词:

上一篇:Linux常用基本命令,linux基础命令收拾
下一篇:没有了