![如何在不 root 的情况下获取可用无线网络列表](https://linux22.com/image/24482/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%8D%20root%20%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E8%8E%B7%E5%8F%96%E5%8F%AF%E7%94%A8%E6%97%A0%E7%BA%BF%E7%BD%91%E7%BB%9C%E5%88%97%E8%A1%A8.png)
我想获得所有无线网络的列表。
iwlist wlan0 scan | grep ESSID
这只会显示我当前连接的无线网络。当我以 root 身份运行该命令时,它会显示所有可用的网络。如果我在此之后快速运行不带 sudo 的命令,所有网络都会显示,但过了一会儿,除了我当前连接的网络之外,它们都消失了。
当我不是 root 时,有没有办法获取所有可用网络?
答案1
您可以(或确实?)可能使用wpa_supplicant
;使用其ctrl_interface
配置密钥,您可以允许非 root 用户(例如具有 group 的用户)通过(即[1])wheel
访问wpa_cli
/sbin/wpa_cli scan_results
# allow frontend (e.g., wpa_cli) to be used by all users in 'wheel' group
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
还有一个命令行开关wpa_suppliant
,
-u Enabled DBus control interface. If enabled, interface defini‐
tions may be omitted.
为您提供一个 DBus 接口,从而提供非 root 访问的另一种可能性(我认为 NetworkManager 使用此接口)。
[1] 连接后,这仅显示您所在的无线局域网连接到...我不知道这与 NetworkManager 是否有什么不同。