From c4708f132381e4bbc864d5241381b5cde4f54878 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Fri, 20 Dec 2013 20:25:39 -0500 Subject: tmpfiles: introduce the concept of unsafe operations Various operations done by systemd-tmpfiles may only be safely done at boot (e.g. removal of X lockfiles in /tmp, creation of /run/nologin). Other operations may be done at any point in time (e.g. setting the ownership on /{run,var}/log/journal). This distinction is largely orthogonal to the type of operation. A new switch --unsafe is added, and operations which should only be executed during bootup are marked with an exclamation mark in the configuration files. systemd-tmpfiles.service is modified to use this switch, and guards are added so it is hard to re-start it by mistake. If we install a new version of systemd, we actually want to enforce some changes to tmpfiles configuration immediately. This should now be possible to do safely, so distribution packages can be modified to execute the "safe" subset at package installation time. /run/nologin creation is split out into a separate service, to make it easy to override. https://bugzilla.redhat.com/show_bug.cgi?id=1043212 https://bugzilla.redhat.com/show_bug.cgi?id=1045849 --- man/tmpfiles.d.xml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'man/tmpfiles.d.xml') diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml index 331fd1b472..0da52aedad 100644 --- a/man/tmpfiles.d.xml +++ b/man/tmpfiles.d.xml @@ -113,6 +113,9 @@ L /tmp/foobar - - - - /dev/null Type + The type consists of a single letter and + optionally an exclamation mark. + The following line types are understood: @@ -262,6 +265,28 @@ L /tmp/foobar - - - - /dev/null names. + + If the exclamation mark is used, this + line is only safe of execute during boot, and + can break a running system. Lines without the + exclamation mark are presumed to be safe to + execute at any time, e.g. on package upgrades. + systemd-tmpfiles will + execute line with an exclamation mark only if + option is given. + + + For example: + +# Make sure these are created by default so that nobody else can +d /tmp/.X11-unix 1777 root root 10d + +# Unlink the X11 lock files +r! /tmp/.X[0-9]*-lock + + The second line in contrast to the first one + would break a running system, and will only be + executed with . -- cgit v1.2.3-54-g00ecf