以非 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

希望对您有所帮助!