除非以 sudo 身份运行,否则 iwconfig 不会报告链接质量

除非以 sudo 身份运行,否则 iwconfig 不会报告链接质量

我在 2013 年末的 Macbook Pro Retina 上运行 Ubuntu 13.10(通过重新查找)。

我的问题是运行iwconfig不会输出Link Quality,或者Signal Level除非以 sudo 身份运行。

me:~$ sudo iwconfig
eth0      IEEE 802.11abg  ESSID:"redacted_essid"  
          Mode:Managed  Frequency:2.447 GHz  Access Point: RE:DA:CT:ED:XX:XX   
          Bit Rate=144 Mb/s   Tx-Power=200 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=70/70  Signal level=-35 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

lo        no wireless extensions.

不是 sudo:

me:~$ iwconfig  
eth0      IEEE 802.11abg  ESSID:"redacted_essid"  
          Mode:Managed  Frequency:2.447 GHz  Access Point: RE:DA:CT:ED:XX:XX   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:off

lo        no wireless extensions.

这是正常的吗?我能做些什么让它在没有超级用户权限的情况下工作吗?

我的原因是,Awesome Window Manager 的 Vicious Wifi Widget 希望能够以iwconfig非 root 身份查询此信息:http://git.sysphere.org/vicious/tree/widgets/wifi.lua

非常感谢。

答案1

该命令iwconfig是系统管理命令(通常仅适用于 root)。请参阅man iwconfig。它记录在手册页的第 8 节下。要了解有关手册页的更多信息,请参阅这个帖子

如果你在终端尝试,

$ type iwconfig 
iwconfig is hashed (/sbin/iwconfig)

并且/sbin包含特权可执行文件。这就是为什么您在以非 root 用户身份使用时无法获得其全部功能的原因。没有什么异常。

如何使用sudo iwconfig无需密码 [来源]

您可以NOPASSWD在您的文件中使用该指令/etc/sudoers

如果您的用户被呼叫user并且您的主机被呼叫,host您可以将这些行添加到/etc/sudoers

user host = (root) NOPASSWD: /sbin/iwconfig

这将允许用户无需输入密码即可运行该命令。所有其他eduser命令仍需要密码。sudo iwconfighostsudo

建议使用sudo visudo来编辑该文件。阅读这篇精彩文章然后再继续。如果您不想修改您的/etc/sudoers


另一种不好的方法[不推荐]是要求sudo从已存储密码的文件中读取密码。但这可能是严重的安全隐患.-S开关可以sudo从标准输入读取密码。

如果您将密码存储在mypsd.txt仅包含密码后跟换行符的文件中。则以下命令将从该文件中读取您的密码,

cat /path/to/mypsd.txt | sudo -S iwconfig

答案2

另一个简单的解决方案

Xubuntu 13.10中iwconfig默认文件权限为:

$ ls -l /sbin/iwconfig
-rwxr-xr-x 1 root root 26152 Feb  03  2014 /sbin/iwconfig

以下命令可能会在其他 Ubuntu 版本中修复此问题:

$ sudo useradd -G sudo <your user name>
$ sudo chmod 755 /sbin/iwconfig

- 问候。

相关内容