Car*_*ito 5 linux wifi not-root-user
我想获得所有无线网络的列表。
iwlist wlan0 scan | grep ESSID
Run Code Online (Sandbox Code Playgroud)
这只会显示我当前连接的无线网络。当我以 root 身份运行命令时,它会显示所有可用的网络。如果我在此之后快速运行没有 sudo 的命令,所有网络都会显示出来,但过一段时间它们都消失了,除了我当前连接的网络。
当我不是 root 时,有没有办法获得所有可用的网络?
你可以(或做?)可能使用wpa_supplicant; 使用它的ctrl_interface配置密钥,您可以允许非 root 用户(例如具有组的用户wheel)通过wpa_cli(即/sbin/wpa_cli scan_results [1])访问
# allow frontend (e.g., wpa_cli) to be used by all users in 'wheel' group
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
Run Code Online (Sandbox Code Playgroud)
还有一个命令行开关wpa_suppliant,
-u Enabled DBus control interface. If enabled, interface defini?
tions may be omitted.
Run Code Online (Sandbox Code Playgroud)
为您提供 DBus 接口,从而为非 root 访问提供另一种可能性(我认为 NetworkManager 使用此接口)。
[1] 一旦连接,这仅显示您连接到的无线局域网...我不知道这与 NetworkManager 是否有任何不同。