Wir sind ein Hardware-Hersteller und möchten Unterstützung für Linux bieten. Das bedeutet, dass wir eine (User Space) Shared Library zur Verfügung stellen wollen, die von unseren Kunden verwendet werden kann, ohne mit dem Lowlevel-Protokoll zu kämpfen.Best Practice für eine Linux Desktop App, um sicherzustellen, dass sie über Hardwarezugriffsberechtigungen verfügt?
Unsere Hardware wird über USB/HID zugegriffen und somit muss unsere Bibliothek auf /dev/hidrawX
zugreifen können.
Um Zugriff auf dieses Gerät (oder andere Hardwaregeräte) zu erhalten, müssen wir das System jedoch ändern, indem wir dem udev-System Berechtigungen hinzufügen (siehe Get access to USB device on Linux (libusb-1.0)?).
Ist dies wirklich die beste Praxis? Wenn ja, wo soll ich das machen? Im .deb/.rpm/... Installer der Kundenanwendung? Was ist mit FlatPak oder ähnlichen Konzepten?
Sie haben nur eine Chance in deb/rpm-Paketen, da ihr Postinstall-Skript als root ausgeführt wird und Sie root sein müssen, um benutzerdefinierte udev-Regeln hinzuzufügen. Flatpak und ähnliche Sandbox-Projekte können das Root-Dateisystem nicht ändern, wie beispielsweise die udev-Regeln. –
Gibt es mindestens eine "Best Practice", wie dies zu .deb/.rpm Postinstall-Skripten hinzugefügt wird, um sicherzustellen, dass die Einstellungen sauber zurückgesetzt werden, wenn das Paket erneut deinstalliert wird? – mrh1997