On Sat, May 10, 2025 at 12:58:58PM -0000, Alex Haydock wrote: > Fedora Atomic bug documented here: https://bugzilla.redhat.com/show_bug.cgi?id=2359764 > > I think this bug comes from the systemtap .spec's use of traditional (non sysusers.d) methods to handle user creation. I tried to author a PR to solve this issue in the Fedora package repo: https://src.fedoraproject.org/rpms/systemtap/pull-request/32 > > After submitting the PR, I was informed that a prior PR had already solved this issue: https://src.fedoraproject.org/rpms/systemtap/pull-request/31 > > That prior PR made it into this recent release, which is now available in F42 as of a few days ago: https://bodhi.fedoraproject.org/updates/FEDORA-2025-fb27254eca > > Unfortunately, this hasn't fixed the issue for me. So I'm looking again at the spec (maintained upstream) to try and work out what might still be the problem and possibly re-factor my PR to properly solve the issue. > > I might be completely missing something, but the conditional branching logic introduced by the PR above (f892ad26592f97d32984ae088634e82c3c973138) seems to be backwards. From what I can tell, the branching conditional logic is actually checking for any version of Fedora *below* 42 and runs the updated sysusers.d logic if that check matches. This seems to be the opposite of the intended logic, as newer Fedora versions should use the newer sysusers.d logic. Hi, The logic is a bit confusing, but it doesn't seem to be wrong :] In F42+, rpm takes care of creating system users: - the package contains a sysusers.d file: $ rpm -ql systemtap-runtime | rg sysusers /usr/lib/sysusers.d/systemtap-runtime.conf) - when the pacakge is built, this is turned into metadata on the package: $ rpm -qP systemtap-runtime | rg 'user|group' group(stapdev) = ZyBzdGFwZGV2IDE1OAAA group(stapsys) = ZyBzdGFwc3lzIDE1NwAA group(stapunpriv) group(stapunpriv) = ZyBzdGFwdW5wcml2IDE1OQAA group(stapusr) = ZyBzdGFwdXNyIDE1NgAA groupmember(stapunpriv/stapunpriv) = bSBzdGFwdW5wcml2IHN0YXB1bnByaXYA user(stapunpriv) = dSBzdGFwdW5wcml2IDE1OSAic3lzdGVtdGFwIHVucHJpdmlsZWdlZCB1c2VyIiAvdmFyL2xpYi9zdGFwdW5wcml2IC9zYmluL25vbG9naW4A or $ rpm -q --qf='[%{SYSUSERS}\n]' systemtap-runtime g stapdev 158 g stapsys 157 g stapunpriv 159 g stapusr 156 m stapunpriv stapunpriv u stapunpriv 159 "systemtap unprivileged user" /var/lib/stapunpriv /sbin/nologin - when this package is installed, rpm calls systemd-sysusers to create the users based on the metadata: $ dnf install systemtap-runtime ... [3/4] Installing dyninst-0:13.0.0-5.fc42.x86_64 100% | 31.4 MiB/s | 14.2 MiB | 00m00s >>> Running sysusers scriptlet: systemtap-runtime-0:5.3-1.fc42.x86_64 >>> Finished sysusers scriptlet: systemtap-runtime-0:5.3-1.fc42.x86_64 >>> Scriptlet output: >>> Creating group 'stapdev' with GID 158. >>> Creating group 'stapsys' with GID 157. >>> Creating group 'stapunpriv' with GID 159. >>> Creating group 'stapusr' with GID 156. >>> Creating user 'stapunpriv' (systemtap unprivileged user) with UID 159 and GID 159. >>> [4/4] Installing systemtap-runtime-0:5.3-1.fc42.x86_64 100% | 1.4 MiB/s | 1.0 MiB | 00m01s Note that the users and groups are create *before* the package itself is unpacked. In F42-, this creation would need to be handled by a scriptlet in the package. That is why the logic is how it is: we don't need the scriptlet in newer versions. The above was about "traditional" package-based systems. On an rpm-ostree system, the implementation is different, but it is supposed to provide the same result. The issue is probably somewhere in that tooling. The sysusers.d file looks like this: $ cat /usr/lib/sysusers.d/systemtap-runtime.conf g stapusr 156 g stapsys 157 g stapdev 158 g stapunpriv 159 u stapunpriv 159 "systemtap unprivileged user" /var/lib/stapunpriv /sbin/nologin m stapunpriv stapunpriv A lot of this is redundant. The following would be enough: g stapusr 156 g stapsys 157 g stapdev 158 u stapunpriv 159 "systemtap unprivileged user" /var/lib/stapunpriv But the redundancy should not cause a problem. I think we need to ask some rpm-ostree folks to look into this. Zbyszek -- _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue