编辑:在重新思考这个问题时,有一个问题很突出:为什么我在通过 GUI 时可以简单地连接到 Wifi,但如果我想通过命令行连接则需要 root 权限?
我正在尝试通过 Java 以编程方式修改 Linux Wifi 连接。我编写了程序来使用wpa_supplicant.conf
相关信息修改文件,然后发出:
wpa_cli -i wlan0 reconfigure
起初,事情不起作用,因为该wpa_supplicant.conf
文件归 root 所有,并且我收到了权限错误。我chown
将文件归我所有并重新运行。事情进展顺利。
但随后我使用 GUI 断开了与已连接的 AP 的连接。当我查看该wpa_supplicant.conf
文件时,所有权已恢复为 root。这意味着,如果我再次运行我的程序,由于权限问题,它将无法工作,因为我不想以 root 身份运行我的程序。
这里发生了什么?为什么该文件的所有权发生变化?如何通过 Java 可靠地修改 Wifi 配置?