root以外のユーザーにWiFiに接続させる方法は?

root以外のユーザーにWiFiに接続させる方法は?

/etc/os-release説明するDebian GNU/Linux 9 (stretch)

/proc/version説明するLinux version 4.4.132+ (jenkins@fdc-06) (gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) ) #1 SMP

sudo /sbin/wpa_supplicant -v印刷wpa_supplicant v2.4

/etc/wpa_supplicant/wpa_supplicant.conf設定ファイルでこれらの権限を設定しています。

両方の方法を試してみましたが、録音された一つ:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=linaro

このリクエスタのソースコードを読んだ後、別のコードが見つかりました。

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=linaro

それらのどれも動作しません:

$ ls -la /var/run/wpa_supplicant
ls: cannot open directory '/var/run/wpa_supplicant': Permission denied
$ sudo ls -la /var/run/wpa_supplicant
srwxrwx---  1 root root   0 Mar 22 19:24 wlan0

構成に何を記録しても、所有者とグループはルートです。

数ヶ月前は、Linux 4.4.71+で正常に動作しました。

UNIXソケットの権限を設定するには?

PS:背景情報:これはARM SoC上で動作する組み込みシステムです。私はこの制御インターフェースをプログラム的に使用します。つまり、Wi-Fiを制御するには、通常のユーザーアカウントで実行されるソフトウェアが必要です(接続、切断、パスワード設定など)。 LinuxデスクトップまたはX-windowsが実行されていません。

修正する:コメントで提案されているように、より多くのコンテキストを追加してください。これはカスタマイズされた組み込みデバイスに基づいています。RK3288、Linuxカーネルの実行、最小限のシステムサービスセット(wpa_supplicantが1つ)、および私が開発した単一のアプリケーションを実行します。ユーザーはタッチスクリーンとネットワークを介して自分のアプリとやり取りします(ただし、まず何とか接続する必要があります)。 X WindowやWaylandもなく、デスクトップもなく、マウスやキーボードもありません。

ベストアンサー1

実際、UNIXソケットに関連付けられた非ルートグループの構成を設定する方法は次のとおりです。wpa_requester非常に奇妙で文書化されていません。次の手順が役に立ちます。

  • グループを作成する(リナロあなたの場合);とにかく、私の例では「netdev」を使用します。これはほとんどのディストリビューションにすでに存在する必要があります(そうでない場合:)sudo groupadd netdev
  • ユーザーをグループに関連付けます(例:ユーザー)私のユーザー" sudo usermod -a -G netdev my_user:);
  • 方法を確認してくださいwpa_requester開始( ps -ef | grep wpa_supplicant):
    • -Oたとえば、このオプションを使用する場合は、-O /run/wpa_supplicant次を含む文字列に変更します。目次そしてグループ属性、割り当てグループ到着Web開発者、写真-O "DIR=/run/wpa_supplicant GROUP=netdev"
    • andの代わりにwhileを使用している場合は、-Oこのオプションを以前のように設定する必要があります。-i-s-Owpa_requester-cこの場合、設定ファイル(オプション)は使用されません。正しい設定の例:/sbin/wpa_supplicant -u -s -O "DIR=/run/wpa_supplicant GROUP=netdev";
    • 使用されていない場合と-O使用される場合-i-c設定できますグループプロパティからwpa_requester設定ファイル(-cオプションで指定)例:ctrl_interface=DIR=/run/wpa_supplicant GROUP=netdev

/var/run通常、シンボリックリンクの場合と同様に、上記の例ではシンボリックリンクを代わりに使用できます。/run/var/run/run

おすすめ記事