确保Linux桌面应用程序具有硬件访问权限的最佳实践?

确保Linux桌面应用程序具有硬件访问权限的最佳实践?,linux,permissions,usb,linux-device-driver,hid,Linux,Permissions,Usb,Linux Device Driver,Hid,我们是一家硬件供应商,希望为linux提供支持。 这意味着我们希望提供一个(用户空间)共享库,客户应用程序可以使用该库,而无需与低层协议抗争 我们的硬件是通过USB/HID访问的,因此我们的库需要访问/dev/hidrawX 但要访问此设备(或其他类型的硬件设备),我们似乎需要通过向udev系统添加权限来修改系统(请参阅) ) 这真的是最佳实践吗?如果是,我应该在哪里做?在.deb/.rpm/。。。客户应用程序的安装程序?或者类似的概念呢?Udev是标准和最佳实践。每个linux发行版都有ude

我们是一家硬件供应商,希望为linux提供支持。 这意味着我们希望提供一个(用户空间)共享库,客户应用程序可以使用该库,而无需与低层协议抗争

我们的硬件是通过USB/HID访问的,因此我们的库需要访问
/dev/hidrawX

但要访问此设备(或其他类型的硬件设备),我们似乎需要通过向udev系统添加权限来修改系统(请参阅) )


这真的是最佳实践吗?如果是,我应该在哪里做?在.deb/.rpm/。。。客户应用程序的安装程序?或者类似的概念呢?

Udev是标准和最佳实践。每个linux发行版都有udev规则文件,对于ubuntu来说,通常是ex的,它位于/etc/udev/rules.d文件夹中。您需要创建一个udev规则文件,并将MODE=“0666”规则写入其中。看看如何编写udev规则。

您在deb/rpm包中只有机会,因为它们的安装后脚本以root身份运行,您必须是root才能添加自定义udev规则。Flatpak和类似的沙盒项目无法修改根文件系统,如udev规则。是否至少有一个“最佳实践”如何将其添加到.deb/.rpm postinstall脚本中,以确保在再次卸载包时干净地重置设置?我的问题不是如何使用udev(我已经添加了一个关于如何执行此操作的链接)。我的问题是关于最佳实践。