mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 16:37:19 +09:00
Background: Fedora/RHEL are switching to sysusers.d metadata for creation of users and groups for system users defined by packages (https://fedoraproject.org/wiki/Changes/RPMSuportForSystemdSysusers). Packages carry sysusers files. During package installation, rpm calls an program to execute on this config. This program may either be /usr/lib/rpm/sysusers.sh which calls useradd/groupadd, or /usr/bin/systemd-sysusers. To match the functionality provided by useradd/groupadd from the shadow-utils project, systemd-sysusers must emit audit events so that it provides a drop-in replacement. systemd-sysuers will emit audit events AUDIT_ADD_USER/AUDIT_ADD_GROUP when adding users and groups. The operation "names" are copied from shadow-utils in Fedora (which has a patch to change them from the upstream version), so the format of the events that is generated on success should be identical. The helper code is shared between sysusers and utmp-wtmp. I changed the audit_fd variable to be unconditional. This way we can avoid ugly iffdefery every time the variable would be used. The cost is that 4 bytes of unused storage might be present. This is negligible, and the compiler might even be able to optimize that away if it inlines things.