systemd
systemd versus non-systemd / Miscellaneous / Find systemd dependency cycles.
systemd security features
[edit]Systemd has a long list of security hardening features for systemd unit files.
Non-exhaustive list. Written April 2026.
The goal of the list isn't replacing systemd upstream documentation, completeness, or perfection. The purpose is to provide a rationale for using systemd.
This table intentionally uses short upstream verbatim excerpts that give a reader an initial clue why a directive can improve service isolation. For some settings, especially DynamicUser= together with the directory helpers, the security benefit is clearest when multiple directives are combined.
| Directive | Upstream excerpt |
|---|---|
NoNewPrivileges=yes
|
[1] |
PrivateTmp=yes
|
[1] |
PrivateDevices=yes
|
[1] |
ProtectSystem=strict
|
[1] |
ProtectHome=read-only
|
[1] |
ProtectControlGroups=yes
|
[1] |
ProtectKernelTunables=yes
|
[1] |
ProtectKernelModules=yes
|
[1] |
ProtectKernelLogs=yes
|
[1] |
ProtectClock=yes
|
[1] |
ProtectHostname=yes
|
[1] |
LockPersonality=yes
|
[1] |
MemoryDenyWriteExecute=yes
|
[1] |
RestrictSUIDSGID=yes
|
[1] |
RestrictRealtime=yes
|
[1] |
RestrictNamespaces=yes
|
[1] |
SystemCallArchitectures=native
|
[1] |
SystemCallFilter=@system-service
|
[1] |
SystemCallErrorNumber=EPERM
|
[1] |
CapabilityBoundingSet=
|
[1] |
AmbientCapabilities=
|
[1] |
PrivateUsers=yes
|
[1] |
PrivateMounts=yes
|
[1] |
PrivateIPC=yes
|
[1] |
PrivatePIDs=yes
|
[1] |
ProtectProc=invisible
|
[1] |
ProcSubset=pid
|
[1] |
RemoveIPC=yes
|
[1] |
UMask=0077
|
[1] |
IPAddressDeny=any
|
[2] |
IPAddressAllow=...
|
[2] |
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
|
[1] |
SocketBindDeny=any
|
[2] |
SocketBindAllow=...
|
[2] |
ReadWritePaths=...
|
[1] |
ReadOnlyPaths=...
|
[1] |
InaccessiblePaths=...
|
[1] |
TemporaryFileSystem=/var:ro
|
[1] |
DevicePolicy=closed
|
[2] |
DeviceAllow=...
|
[2] |
DynamicUser=yes
|
[3] |
StateDirectory=...
|
[1] |
CacheDirectory=...
|
[1] |
LogsDirectory=...
|
[1] |
RuntimeDirectory=...
|
[3] |
PrivateNetwork=yes
|
[1] |
NetworkNamespacePath=...
|
[1] |
RestrictFileSystems=...
|
[1] |
KeyringMode=private
|
[1] |
systemd versus non-systemd
[edit]Kicksecure is a systemd-based distribution. Kicksecure is not anti-systemd.
The Kicksecure lead developer isn't convinced by anti-systemd arguments justifying a move to a non-systemd distribution. (Elaborated in forums.)![]()
Non-systemd is unsupported because no contributors support this use case.
See also:
systemd interface opinion
[edit]TODO: expand
The interfaces (the way packages and distributions can place configuration files there) of
/usr/lib/systemd/system/unit-name.service(.d);
- ability to easily use capabilities and syscall filters for security hardening
- systemd tmpfiles.d
/
/usr/lib/tmpfiles.d/;are excellent.
The The Boot Loader Interface
![]()
LoaderSystemTokenfeature sounds excellent.Bad things:
- journal log being binary
- adding
systemdinto the names of tools such assystemd-resolved,systemd-networkdand making these systemd-dependent- systemd-boot only supporting Intel/AMD64 architectureKicksecure lead developer opinion.
Systemd User Environment Variables Configuration
[edit]1
mkdir -p ~/.config/environment.d/
2 Open file ~/.config/environment.d/electrumx.conf in a text editor of your choice as a regular, non-root user.
If you are using a graphical environment, run. featherpad ~/.config/environment.d/electrumx.conf
If you are using a terminal, run. nano ~/.config/environment.d/electrumx.conf
3 Paste the following contents.
COIN=Bitcoin DB_DIRECTORY=~/.electrumx DAEMON_URL=username:password@127.0.0.1 SERVICES=rpC://localhost PEER_DISCOVERY=self
4 Save.
5
systemctl --user daemon-reload
6 Done.
The systemd user environment variables configuration has been created and reloaded.
systemd age API
[edit]- https://forum.qubes-os.org/t/how-much-do-we-gotta-worry-about-this-linux-age-verification-bs/39788/179

- https://forum.qubes-os.org/t/how-much-do-we-gotta-worry-about-this-linux-age-verification-bs/39788/240

Interesting
[edit]See Also
[edit]- https://forums.kicksecure.com/t/non-systemd-systemd-discussion/766

- https://forums.whonix.org/t/whonix-without-systemd/18426

- Whonix without systemD

Footnotes
[edit]- ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 1.27 1.28 1.29 1.30 1.31 1.32 1.33 1.34 1.35 1.36 1.37 1.38 1.39 1.40 systemd.exec(5)

- ↑ 2.0 2.1 2.2 2.3 2.4 2.5 systemd.resource-control(5)

- ↑ 3.0 3.1 Dynamic Users with systemd

We believe security software like Kicksecure needs to remain Open Source and independent. Would you help sustain and grow the project? Learn more about our 14 year success story and maybe DONATE!