Bug 1020341

Summary: systemd: regression, uaccess no longer works
Product: [openSUSE] openSUSE Distribution Reporter: Uwe Geuder <novell-ugeuder>
Component: BasesystemAssignee: E-mail List <bnc-team-screening>
Status: RESOLVED INVALID QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: novell-ugeuder
Version: Leap 42.2   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Uwe Geuder 2017-01-17 11:47:15 UTC
I am running openSUSE Leap 42.2 with all updates. Systemd tag "uaccess" no longer grants file (device node) access to the user. This works fine in 13.2.

1) How to reproduce:

1a) add udev rules /etc/udev/rules.d/85-myusb.rules

ACTION=="add", KERNEL=="sd*", SUBSYSTEM=="block", SUBSYSTEMS=="usb", ENV{ID_DRIVE_THUMB}=="1", ENV{DEVTYPE}=="partition", TAG+="uaccess", ENV{FOO}+="part9"

ACTION=="add", KERNEL=="sd*", SUBSYSTEM=="block", SUBSYSTEMS=="usb", ENV{ID_DRIVE_THUMB}=="1", ENV{DEVTYPE}=="disk", TAG+="uaccess", ENV{FOO}+="drive9"

(note that udev does NOT tolerate linefeeds inside a rule!!!)

1b) Insert a USB memory stick

(For testing this it might be better to de-activate automount in your desktop.
In xfce this can be done under Thunar File manager, Preferences, Advanced, Volume Management, Configure. However, I don't think that the bug and automount are related)

2) Expected results

2a) for debugging only

udevadm info /sys/class/block/sd<whatever you got> 

output shows the FOO property (for debugging only) and the uaccess TAG, so the rule was applied.


2b) the real beef

user account can read and write /dev/sd<whatever you got> (the USB stick)

e.g. file -s /dev/sdc


3) Observed results in 42.2

3a) as 2a, OK

3b) no access for user, NOK, this is the bug


4) Observed results in 13.2

4a) as 2a OK

4b) access for user is granted. ownership is still (root,disk), but there is an ACL to grant access to the user. Use getfacl to display the ACL



Archlinux Wiki mentions that uaccess requires a working user session. So I include this data from 42.2, too. No relevant difference between 13.2 and 42.2 observed.

$ loginctl show-session $XDG_SESSION_ID
Id=2
User=1000
Name=geuder
Timestamp=Tue 2017-01-17 10:35:45 EET
TimestampMonotonic=50306270
VTNr=7
Seat=seat0
Display=:0
Remote=no
Service=lightdm
Desktop=xfce
Scope=session-2.scope
Leader=1684
Audit=2
Type=x11
Class=user
Active=yes
State=active
IdleHint=no
IdleSinceHint=0
IdleSinceHintMonotonic=0
Comment 1 Uwe Geuder 2017-01-17 13:22:04 UTC
Actually I reproduced the problem on 13.2.

Probably not a regression, but unclean reproduction of the problem on my side,

I don't have time to investigate this at this moment, setting "More information needed". will investigate further ASAP.
Comment 2 Uwe Geuder 2017-01-18 12:06:35 UTC
My bug report is invalid, there is no regression from 13.2 to 42.1

In 13.2 I used to have the rules as 70-myusb.rules and the uaccess part worked fine. However, I had never been able to really use the ID_DRIVE_THUMB part, so that had been commented out.

Lately I noticed the reason for this is that ID_DRIVE_THUMB is only set by 82-udisk.rules. So when moving to 42.2 at the same time I "fixed" my rules to be be 85-myusb.rules.

But it looks like uaccess cannot work without rules from  71-seat.rules 73-seat-late.rules, so uaccess broke.

When moving back to 70-myusb.rules uaccess works in 42.2 as it did in 13.2, no regression.

(For reasons I cannot absolutely not understand my 70-myusb.rules (including the check for ID_DRIVE_THUMB) do grant uaccess on partitions. For the whole disk they don't work, which is expected because ID_DRIVE_THUMB is tested before set. But bugzilla is not troubleshooting forum, so this only as a side note.)

Sorry about the noise caused by the invalid report.