The helper reaches a user manager with the uid@ machine transport. That transport runs systemd-run, which opens a PAM login session for the user. In that session, systemd-stdio-bridge connects to the user's D-Bus broker. rpm runs the helper once per package scriptlet. A large transaction therefore opens many login sessions for every logged-in user. The operations also fail whenever the user's D-Bus broker is not running. The user manager accepts connections from root on its private socket, and systemctl --user uses the same socket. Connect to /run/user/UID/systemd/private directly with bus_connect_user_systemd_by_uid(). The user owns /run/user/UID. The function therefore refuses a socket that the user does not own or that a process of another user listens on. Otherwise a user could point the helper at the private socket of the system manager.
System and Service Manager
Details
Most documentation is available on systemd's website.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Code Map for information about this repository's layout and content.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list, join our IRC channel #systemd on libera.chat or Matrix channel
Stable branches with backported patches are available in the stable repo.
We have a security bug bounty program sponsored by the Sovereign Tech Fund hosted on YesWeHack
Repositories with distribution packages built from git main are available on OBS, and also repositories with packages built from the latest stable release
