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

2024-03-18

我编写了一些 Python 脚本,用于扫描设备。如果它们与“名称”匹配,我就会连接到它们并做一些蓝色的事情。该脚本是建立在bluepy module.

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

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


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

这些权限是通过称为功能的属性来实现的,请参阅人7能力 http://man7.org/linux/man-pages/man7/capabilities.7.html了解详情。

分配能力的工具是程序setcap.

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

sudo setcap 'cap_net_raw,cap_net_admin+eip' ${PY_SITE_PACKAGES_DIR}/bluepy/bluepy-helper

也可以看看here https://github.com/IanHarvey/bluepy/issues/313

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • Python绘图图像保存错误

    我是Python新手 我已经使用 Django 编写了 Web 服务来将图像保存在服务器中 我正在尝试使用下面的代码将绘图保存为图像 并且它可以正常工作 3 次 之后 Python 会抛出错误 如何解决这个问题 Exception igno
  • 我可以像这样使用 try-catch-finally 吗?

    我在用着try catch多年来 但我从未学会如何以及何时使用finally 因为我从来不明白这一点finally 我读过坏书 我想问你关于使用finally就我而言 我的代码示例应该解释一切 s c MyClassForFileHandl
  • Flyspell 无法在 emacs 中加载 LaTeX 文件

    下列的这个网页 http www sop inria fr members Manuel Serrano flyspell flyspell html 我编辑了 emacs 文件并添加了以下行 add hook LaTeX mode hoo
  • 使用 ::SysFreeString() 释放 BSTR。更多平台依赖性?

    我正在编写一个 COM 服务器 它有很多接口和方法 大多数方法都将 BSTR 作为参数并作为用于返回的本地参数 一个片段看起来像 更新5 真正的代码 它根据数据库的特定条件从一堆数据中获取数据以填充对象数组 STDMETHODIMP CAp
  • PHP - 使用socket_recv时出错

    在此函数内运行 socket recv 时出现套接字错误 function readByteXByteSIBmsg msg buf try while ret socket recv this gt kpSocket buf 8192 0
  • Mercurial 和 NTFS 备用数据流

    Mercurial 如何处理备用数据流 在 NTFS 文件系统中 如果它不能处理这个问题 是否有 DCVS 可以处理 EDIT 当我更改版本时update ADS 会发生什么情况 它丢失 删除 了吗 也有版本吗 是不是都被忽略了 Mercu
  • 为什么 catch 参数是隐式最终参数?

    catch IOException SQLException ex logger log ex throw ex 这是为什么ex隐式最终 让 ex 隐式最终有什么用 它是隐式最终的 因为更改所指向的对象对您来说没有意义ex 特别是在这种情况
  • 计算UIScrollView的minimumZoomScale

    我有一个图像 我想将其加载到图像视图中 并设置minimumZoomScale 以及将zoomScale设置为aspectFill之类的比例 我计算如下 configure the map image scroll view iImageS
  • 以零长度调用 write() 会产生什么后果?

    在 Linux 中处于相当高的水平write 函数 它会过滤掉写入 0 长度缓冲区的请求 这是有道理的 谁愿意操作系统浪费时间钻探各层只是为了确定没有任何工作要做 嗯 我 这与Linux 内核中的 I2C 写入确认轮询 https stac
  • 绑定到 ASP.NET GridView 时的 TypeConverter

    我试图将对象的 IList 绑定到 GridView 的数据源 并且该对象的属性之一是枚举 当对象绑定到 GridView 行时 我试图在枚举上使用 TypeConverter 来使用说明 它看起来不像我的EnumConverter Con
  • ImportError:libcublas.so.9.0:无法打开共享对象文件

    目前我在 Gpu 支持系统中安装了 cuda 8 0 和 cuda 9 0 我在从 keras 模块导入时遇到了这个错误 它说无法加载本机张量流运行时 我收到的错误日志是 Traceback most recent call last Fi
  • ViewTreeObserver 布局的 getHeight() 返回零

    我在用视图树观察者 in OnCreate获取工具栏和底部布局高度的方法 但我仍然得到0 height 为什么 难道我做错了什么 这就是我的调用方式 ViewTreeObserver viewTreeObserver toolbar get
  • 将内容添加到 Django Admin 中的每个视图(base_site.html)

    我想将对象列表传递到 Django 管理中的自定义模板 删除视图 and 更改视图 我修改了 base site html 以包含导航栏 并且我想从视图中将对象列表传递到导航栏 我之前也为 django admin index change
  • 重载方法的 Javadoc 重用

    我正在开发一个 API 其中包含许多名称相同的方法 只是签名有所不同 我认为这相当常见 它们都做同样的事情 除了如果用户不想指定的话 它们会默认初始化各种值 作为一个易于理解的例子 考虑 public interface Forest pu
  • 如何以编程方式创建 localdb .mdf?

    如何以编程方式创建 localdb mdf 可接受的解决方案excludeVisual Studio ssms aspnet regsql 一个简单的解决方案可能看起来像这样 static void Main string args usi
  • 如何直接从 Android 应用程序发送电子邮件而不显示设备的默认电子邮件格式?

    我正在构建一个从 Android 应用程序发送电子邮件的表单 我使用 Intents 发送电子邮件 即 Intent sendIntent sendIntent new Intent Intent ACTION SEND 我的要求是我希望立
  • SSMS 结果作为可点击的链接

    我对 SQL 相当陌生 我环顾四周 看看是否可以找到一种方法来做到这一点 如果可能的话 这是我的 SQL 查询文本 SELECT CONCAT https domain 8080 analyzer sipid SIPCallId cmd G
  • 有没有办法让 PHP 详细加载类,指示 .php 文件的完整路径?

    我想让 PHP 在加载类时将调试信息 包括 php 文件的完整路径 打印到标准错误 例如 从 path to my class MyClass php 加载 MyClass 有没有办法在不事先知道源文件在哪里的情况下做到这一点 编辑以澄清我
  • after_commit 回调被调用多次

    更新 对 update attributes 的调用是否会获取它自己的事务 我看过this https stackoverflow com questions 7603448 rails after save callback being
  • 如何设置bluepy无需sudo即可扫描的环境?

    我编写了一些 Python 脚本 用于扫描设备 如果它们与 名称 匹配 我就会连接到它们并做一些蓝色的事情 该脚本是建立在bluepy module 我认为我不喜欢的是 我需要运行设备扫描sudo like sudo python3 get