/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
-O
wpa_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