root以外のユーザーでBluetooth LEスキャンを行いますか?

root以外のユーザーでBluetooth LEスキャンを行いますか?

Bluetooth LEデバイス検索人間 - 機械ツール当然ルートアクセスが必要です。一般ユーザーの場合、出力は次のようになります。

$ hcitool lescan
Set scan parameters failed: Operation not permitted

なぜ人間 - 機械ツールLEスキャンにはroot権限が必要ですか?

root以外のユーザーでLEスキャンを実行できますか?

ベストアンサー1

Linux Bluetoothスタックは2つの機能をチェックします。機能は、特定の権限を管理するためのあまり一般的ではないシステムです。これはPAMモジュールまたは拡張ファイル属性を介して処理できます。 (望むよりhttps://elixir.bootlin.com/linux/v5.8.10/source/net/bluetooth/hci_sock.c#L1307)

 $> sudo apt-get install libcap2-bin

Linux機能操作ツールをインストールします。

 $> sudo setcap 'cap_net_raw,cap_net_admin+eip' `which hcitool`

setuidビットなど、実行可能ファイルに欠けている機能を設定します。

 $> getcap !$
 getcap `which hcitool`
 /usr/bin/hcitool = cap_net_admin,cap_net_raw+eip

だから私たちは始めることができます:

$>hcitool -i hci0 lescan
Set scan parameters failed: Input/output error

はい、BTアダプタはBLEをサポートしていません。

$>hcitool -i hci1 lescan
LE Scan...

動作します。デバイスのボタンを押し続けます。

おすすめ記事