以非 root 用户身份访问 Bluez 库
Bluez Library access as non root user
我已经使用 bluez4 库开发了 BLE 扫描应用程序 APIs.I 我能够 运行 使用 root 用户的应用程序,但出于安全原因,我需要 运行 使用非根用户。
使用 setcap 包我可以 "hcitool lescan" 作为非 root 用户,
=> sudo setcap 'cap_net_raw,cap_net_admin+eip' which hcitool
=> getcap !$
getcap which hcitool
但是当 运行以非 root 用户身份使用我的 ble 扫描应用程序时,这些更改不起作用,它卡在了 API "hci_send_req" returns 错误 "Failed to set scan parameters data.Operation not permitted".
请有人帮我解决这个问题。
问候
尼西斯
也许晚了两年,但我遇到了同样的错误,答案很简单。
您只需要对要执行的二进制文件执行 setcap 操作,以便它可以访问蓝牙操作。命令如下:
sudo setcap 'cap_net_raw,cap_net_admin+eip' /absolute/path/to/your/executable/file
希望对您有所帮助!
我已经使用 bluez4 库开发了 BLE 扫描应用程序 APIs.I 我能够 运行 使用 root 用户的应用程序,但出于安全原因,我需要 运行 使用非根用户。
使用 setcap 包我可以 "hcitool lescan" 作为非 root 用户,
=> sudo setcap 'cap_net_raw,cap_net_admin+eip' which hcitool
=> getcap !$
getcap which hcitool
但是当 运行以非 root 用户身份使用我的 ble 扫描应用程序时,这些更改不起作用,它卡在了 API "hci_send_req" returns 错误 "Failed to set scan parameters data.Operation not permitted".
请有人帮我解决这个问题。
问候 尼西斯
也许晚了两年,但我遇到了同样的错误,答案很简单。 您只需要对要执行的二进制文件执行 setcap 操作,以便它可以访问蓝牙操作。命令如下:
sudo setcap 'cap_net_raw,cap_net_admin+eip' /absolute/path/to/your/executable/file
希望对您有所帮助!