如何设置bluepy无需sudo即可扫描的环境?

Ste*_*itz 3 python linux bluetooth-lowenergy

我编写了一些 Python3 脚本,用于扫描设备。如果他们匹配一个“名字”,我就会连接到他们并做一些事情。该脚本构建在模块之上bluepy

我认为我不喜欢的是,我需要运行设备扫描sudo(如sudo python3 getDev.py)。有什么想法如何使用户能够在没有 root 权限的情况下进行扫描吗?

我想我需要将本地用户添加到组等中。欢迎任何想法

att*_*ona 5

在linux上蓝牙协议栈需要特殊的权限才能与之交互。

这些权限是通过称为“功能”的属性来实现的,有关详细信息,请参阅man 7 功能

分配能力的工具是程序setcap

对于 bluepy,它是bluepy-helper与蓝牙协议栈交互的二进制文件,因此找到 bluepy 包的安装位置并运行:

sudo setcap 'cap_net_raw,cap_net_admin+eip' ${PY_SITE_PACKAGES_DIR}/bluepy/bluepy-helper
Run Code Online (Sandbox Code Playgroud)

另请参阅此处