我想获得所有无线网络的列表。
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 是否有什么不同。