我在 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 iwconfig
host
sudo
建议使用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
- 问候。