Created attachment 572437 [details] package's sugggested rules Description of problem: The Fender Mustang amplifier http://www.fender.com/en-GB/products/mustang/ supports control via USB HID, a client is available for Linux http://piorekf.org/plug/ however under the default rules a normal user does not have permission to access it. I'm attaching the suggested rules for the Plug software, but these may not be the best choices. They require a group 'plugdev', maybe using an existing group would be more appropriate (e.g. audio) or there is a more sophisticated way of assigning control to the user at the console. Let me know if it would be better to report this upstream (and where).
Created attachment 572438 [details] lsusb output on the mustang lsusb output on the mustang. Note it's a composite device, the audio controller is already handled correctly.
We usually do not ship hardware specific rules in the main udev package. They should be shipped by the package which makes use of the device. Fedora does not use the 'plugdev' group and likely never will. Putting normal users in any such groups is a broken, misguided and un-secure concept, which we can not follow. Actually, we can not use *any* group for things like that. The 'audio'/'video' groups are for system services which need to grab video or audio, they must not be used by normal users which log into a machine. As an example, any user in the group 'audio' can at any time log into the machine over ssh and start listening to the built-in microphone of the laptop. This might come in handy for some people, but it's nothing Fedora can ever allow by default. :) Systemd/udev offers to assign dynamic access control lists to device nodes, which are only added when the user's login is active/in the foreground. For that to work, a name ID_<some name> for the device class needs to be found, this property needs to be set by the rules, then added to the systemd file, and logged-in users with active session will get access the the device. The rules file can be a single line like: SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \ ATTRS{idVendor}=="1ed8", ATTRS{idProduct}=="000[456]" \ ENV{ID_<some_name>}="1"
> We usually do not ship hardware specific rules in the main udev package. > They should be shipped by the package which makes use of the device. Thanks for clarifying, I'd been under the impression that the udev package managed all the non-local rules. Your description of the dynamic acl sounds like exactly what I was looking for, I've got a few more questions about that, but will take them to the devel list.