X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=man%2Ftmpfiles.d.xml;h=839bb7604b3e41b9b04696b7f430f9317671ea59;hp=58ac995a18a0afda8d54bf263eb0aa299a06dab4;hb=fa3f5fd2d3aebc468c4df216eca18a289aaa7e16;hpb=1e44448168ff26ff391af83bf67d5bcc3ca368bc diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml index 58ac995a1..839bb7604 100644 --- a/man/tmpfiles.d.xml +++ b/man/tmpfiles.d.xml @@ -21,323 +21,552 @@ --> - - tmpfiles.d - systemd - - - - Documentation - Brandon - Philips - brandon@ifup.org - - - - - - tmpfiles.d - 5 - - - - tmpfiles.d - Configuration for creation, deletion and - cleaning of volatile and temporary files - - - - /etc/tmpfiles.d/*.conf - /run/tmpfiles.d/*.conf - /usr/lib/tmpfiles.d/*.conf - - - - Description - - systemd-tmpfiles uses the - configuration files from the above directories to describe the - creation, cleaning and removal of volatile and - temporary files and directories which usually reside - in directories such as /run - or /tmp. - - - - Configuration Format - - Each configuration file shall be named in the - style of <program>.conf. - Files in /etc/ override files - with the same name in /usr/lib/ - and /run/. Files in - /run/ override files with the same - name in /usr/lib/. Packages - should install their configuration files in - /usr/lib/. Files in - /etc/ are reserved for the local - administrator, who may use this logic to override the - configuration files installed by vendor packages. All - configuration files are sorted by their filename in - alphabetical order, regardless in which of the - directories they reside, to guarantee that a specific - configuration file takes precedence over another file - with an alphabetically later name. - - If the administrator wants to disable a - configuration file supplied by the vendor the - recommended way is to place a symlink to - /dev/null in - /etc/tmpfiles.d/ bearing the - same filename. - - The configuration format is one line per path - containing action, path, mode, ownership, age and argument - fields: - - Type Path Mode UID GID Age Argument -d /run/user 0755 root root 10d - -L /tmp/foobar - - - - /dev/null - - - Type - - - f - Create a file if it does not exist yet (optionally writing a short string into it, if the argument parameter is passed) - - - - F - Create or truncate a file (optionally writing a short string into it, if the argument parameter is passed) - - - - w - Write the argument parameter to a file, if the file exists. - Lines of this type accept shell-style globs in place of normal path - names. The argument parameter will be written without a trailing - newline. C-style backslash escapes are interpreted. - - - - d - Create a directory if it does not exist yet - - - - D - Create or empty a directory - - - - p - Create a named pipe (FIFO) if it does not exist yet - - - - L - Create a symlink if it does not exist yet - - - - c - Create a character device node if it does not exist yet - - - - b - Create a block device node if it does not exist yet - - - - x - Ignore a path - during cleaning. Use this type - to exclude paths from clean-up - as controlled with the Age - parameter. Note that lines of - this type do not influence the - effect of r or R lines. Lines - of this type accept - shell-style globs in place of - normal path - names. - - - - X - Ignore a path - during cleanup. Use this type - to prevent path removal as - controlled with the Age parameter. - Note that if path is a directory, - content of a directory is not - excluded from clean-up, only - directory itself. Lines of this - type accept shell-style globs - in place of normal path - names. - - - - r - Remove a file - or directory if it - exists. This may not be used - to remove non-empty - directories, use R for - that. Lines of this type - accept shell-style globs in - place of normal path - names. - - - - R - Recursively - remove a path and all its - subdirectories (if it is a - directory). Lines of this type - accept shell-style globs in - place of normal path - names. - - - - z - Restore - SELinux security context label - and set ownership and access - mode of a file or directory if - it exists. Lines of this type - accept shell-style globs in - place of normal path names. - - - - - Z - Recursively - restore SELinux security - context label and set - ownership and access mode of a - path and all its - subdirectories (if it is a - directory). Lines of this type - accept shell-style globs in - place of normal path - names. - - - - - - Mode - - The file access mode to use when - creating this file or directory. If omitted or - when set to - the default is used: 0755 for - directories, 0644 for all other file - objects. For z, Z lines if omitted or when set - to - the file access mode will not be - modified. This parameter is ignored for x, r, - R, L lines. - - - - UID, GID - - The user and group to use for this file - or directory. This may either be a numeric - user/group ID or a user or group name. If - omitted or when set to - the default 0 (root) - is used. For z, Z lines when omitted or when set to - - the file ownership will not be modified. - These parameters are ignored for x, r, R, L lines. - - - - Age - The date field, when set, is used to - decide what files to delete when cleaning. If - a file or directory is older than the current - time minus the age field it is deleted. The - field format is a series of integers each - followed by one of the following - postfixes for the respective time units: - - - - s - min - h - d - w - ms - m - us - - - If multiple integers and units are specified the time - values are summed up. If an integer is given without a unit, - s is assumed. - - - When the age is set to zero, the files are cleaned - unconditionally. - - The age field only applies to lines starting with - d, D and x. If omitted or set to - no automatic clean-up - is done. - - If the age field starts with a tilde - character (~) the clean-up is only applied to - files and directories one level inside the - directory specified, but not the files and - directories immediately inside it. - - - - Argument - - For L lines determines the destination - path of the symlink. For c, b determines the - major/minor of the device node, with major and - minor formatted as integers, separated by :, - e.g. "1:3". For f, F, w may be used to specify - a short string that is written to the file, - suffixed by a newline. Ignored for all other - lines. - - - - - - Example - - /etc/tmpfiles.d/screen.conf example - screen needs two directories created at boot with specific modes and ownership. - - d /var/run/screens 1777 root root 10d -d /var/run/uscreens 0755 root root 10d12h - - - /etc/tmpfiles.d/abrt.conf example - abrt needs a directory created at boot with specific mode and ownership and its content should be preserved. - - d /var/tmp/abrt 0755 abrt abrt -x /var/tmp/abrt/* - - - - - See Also - - systemd1, - systemd-tmpfiles8, - systemd-delta1 - - + + tmpfiles.d + systemd + + + + Documentation + Brandon + Philips + brandon@ifup.org + + + + + + tmpfiles.d + 5 + + + + tmpfiles.d + Configuration for creation, deletion and cleaning of + volatile and temporary files + + + + /etc/tmpfiles.d/*.conf + /run/tmpfiles.d/*.conf + /usr/lib/tmpfiles.d/*.conf + + + + Description + + systemd-tmpfiles uses the configuration + files from the above directories to describe the creation, + cleaning and removal of volatile and temporary files and + directories which usually reside in directories such as + /run or /tmp. + + Volatile and temporary files and directories are those + located in /run (and its alias + /var/run), /tmp, + /var/tmp, the API file systems such as + /sys or /proc, as well + as some other directories below /var. + + System daemons frequently require private runtime + directories below /run to place communication + sockets and similar in. For these, consider declaring them in + their unit files using RuntimeDirectory= (see + systemd.exec5 + for details), if this is feasible. + + + + Configuration Format + + Each configuration file shall be named in the style of + package.conf or + package-part.conf. + The second variant should be used when it is desirable to make it + easy to override just this part of configuration. + + Files in /etc/tmpfiles.d override files + with the same name in /usr/lib/tmpfiles.d and + /run/tmpfiles.d. Files in + /run/tmpfiles.d override files with the same + name in /usr/lib/tmpfiles.d. Packages should + install their configuration files in + /usr/lib/tmpfiles.d. Files in + /etc/tmpfiles.d are reserved for the local + administrator, who may use this logic to override the + configuration files installed by vendor packages. All + configuration files are sorted by their filename in lexicographic + order, regardless of which of the directories they reside in. If + multiple files specify the same path, the entry in the file with + the lexicographically earliest name will be applied. All other + conflicting entries will be logged as errors. When two lines are + prefix and suffix of each other, then the prefix is always + processed first, the suffix later. Otherwise, the + files/directories are processed in the order they are + listed. + + If the administrator wants to disable a configuration file + supplied by the vendor, the recommended way is to place a symlink + to /dev/null in + /etc/tmpfiles.d/ bearing the same filename. + + + The configuration format is one line per path containing + type, path, mode, ownership, age, and argument fields: + + #Type Path Mode UID GID Age Argument + d /run/user 0755 root root 10d - + L /tmp/foobar - - - - /dev/null + + Fields may be enclosed within quotes and contain C-style escapes. + + + Type + + The type consists of a single letter and optionally an + exclamation mark. + + The following line types are understood: + + + + f + Create a file if it does not exist yet. If + the argument parameter is given, it will be written to the + file. + + + + F + Create or truncate a file. If the argument + parameter is given, it will be written to the file. + + + + + w + Write the argument parameter to a file, if + the file exists. Lines of this type accept shell-style + globs in place of normal path names. The argument parameter + will be written without a trailing newline. C-style + backslash escapes are interpreted. + + + + d + Create a directory if it does not exist yet. + + + + + D + Create or empty a directory. + + + + v + Create a subvolume if the path does not + exist yet and the file system supports this + (btrfs). Otherwise create a normal directory, in the same + way as d. + + + + p + p+ + Create a named pipe (FIFO) if it does not + exist yet. If suffixed with + and a file + already exists where the pipe is to be created, it will be + removed and be replaced by the pipe. + + + + L + L+ + Create a symlink if it does not exist + yet. If suffixed with + and a file + already exists where the symlink is to be created, it will + be removed and be replaced by the symlink. If the argument + is omitted, symlinks to files with the same name residing in + the directory /usr/share/factory/ are + created. + + + + c + c+ + Create a character device node if it does + not exist yet. If suffixed with + and a + file already exists where the device node is to be created, + it will be removed and be replaced by the device node. It is + recommended to suffix this entry with an exclamation mark to + only create static device nodes at boot, as udev will not + manage static device nodes that are created at runtime. + + + + + b + b+ + Create a block device node if it does not + exist yet. If suffixed with + and a file + already exists where the device node is to be created, it + will be removed and be replaced by the device node. It is + recommended to suffix this entry with an exclamation mark to + only create static device nodes at boot, as udev will not + manage static device nodes that are created at runtime. + + + + + C + Recursively copy a file or directory, if the + destination files or directories do not exist yet. Note that + this command will not descend into subdirectories if the + destination directory already exists. Instead, the entire + copy operation is skipped. If the argument is omitted, files + from the source directory + /usr/share/factory/ with the same name + are copied. + + + + x + Ignore a path during cleaning. Use this type + to exclude paths from clean-up as controlled with the Age + parameter. Note that lines of this type do not influence the + effect of r or R + lines. Lines of this type accept shell-style globs in place + of normal path names. + + + + X + Ignore a path during cleaning. Use this type + to exclude paths from clean-up as controlled with the Age + parameter. Unlike x, this parameter will + not exclude the content if path is a directory, but only + directory itself. Note that lines of this type do not + influence the effect of r or + R lines. Lines of this type accept + shell-style globs in place of normal path names. + + + + + r + Remove a file or directory if it exists. + This may not be used to remove non-empty directories, use + R for that. Lines of this type accept + shell-style globs in place of normal path + names. + + + + R + Recursively remove a path and all its + subdirectories (if it is a directory). Lines of this type + accept shell-style globs in place of normal path + names. + + + + z + Adjust the access mode, group and user, and + restore the SELinux security context of a file or directory, + if it exists. Lines of this type accept shell-style globs in + place of normal path names. + + + + Z + Recursively set the access mode, group and + user, and restore the SELinux security context of a file or + directory if it exists, as well as of its subdirectories and + the files contained therein (if applicable). Lines of this + type accept shell-style globs in place of normal path names. + + + + + t + Set extended attributes. Lines of this type + accept shell-style globs in place of normal path names. + This can be useful for setting SMACK labels. + + + + + T + Recursively set extended attributes. Lines + of this type accept shell-style globs in place of normal + path names. This can be useful for setting SMACK labels. + + + + + h + Set file/directory attributes. Lines of this type + accept shell-style globs in place of normal path names. + + The format of the argument field is [+-=][aAcCdDeijsStTu] + + + The prefix + (the default one) causes the + attribute(s) to be added; - causes the + attribute(s) to be removed; = + causes the attributes to set exactly as the following letters. + The letters aAcCdDeijsStTu select the new + attributes for the files, see + chattr + 1 for further information. + + Passing only = as argument, + resets all the file attributes listed above. It has to be pointed + out that the = prefix, limits itself to the + attributes corresponding to the letters listed here. All other + attributes will be left untouched. + + + + + + + H + Recursively set file/directory attributes. Lines + of this type accept shell-style globs in place of normal + path names. + + + + + a + a+ + Set POSIX ACLs (access control lists). If + suffixed with +, specified entries will + be added to the existing set. + systemd-tmpfiles will automatically add + the required base entries for user and group based on the + access mode of the file, unless base entries already exist + or are explictly specified. The mask will be added if not + specified explicitly or already present. Lines of this type + accept shell-style globs in place of normal path names. This + can be useful for allowing additional access to certain + files. + + + + A + A+ + Same as a and + a+, but recursive. + + + + 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 + . + + + + Path + + The file system path specification supports simple + specifier expansion. The following expansions are + understood: + + + Specifiers available + + + + + + + Specifier + Meaning + Details + + + + + %m + Machine ID + The machine ID of the running system, formatted as string. See machine-id5 for more information. + + + %b + Boot ID + The boot ID of the running system, formatted as string. See random4 for more information. + + + %H + Host name + The hostname of the running system. + + + %v + Kernel release + Identical to uname -r output. + + + %% + Escaped % + Single percent sign. + + + +
+
+ + + Mode + + The file access mode to use when creating this file or + directory. If omitted or when set to -, the + default is used: 0755 for directories, 0644 for all other file + objects. For z, Z lines, + if omitted or when set to -, the file access + mode will not be modified. This parameter is ignored for + x, r, + R, L, t, + and a lines. + + Optionally, if prefixed with ~, the + access mode is masked based on the already set access bits for + existing file or directories: if the existing file has all + executable bits unset, all executable bits are removed from the + new access mode, too. Similarly, if all read bits are removed + from the old access mode, they will be removed from the new + access mode too, and if all write bits are removed, they will be + removed from the new access mode too. In addition, the + sticky/SUID/SGID bit is removed unless applied to a + directory. This functionality is particularly useful in + conjunction with Z. + + + + UID, GID + + The user and group to use for this file or directory. This + may either be a numeric user/group ID or a user or group + name. If omitted or when set to -, the + default 0 (root) is used. For z, + Z lines, when omitted or when set to + -, the file ownership will not be + modified. These parameters are ignored for x, + r, R, + L, t, and + a lines. + + + + Age + The date field, when set, is used to decide what files to + delete when cleaning. If a file or directory is older than the + current time minus the age field, it is deleted. The field + format is a series of integers each followed by one of the + following postfixes for the respective time units: + s, + m or min, + h, + d, + w, + ms, + us, + respectively meaning seconds, minutes, hours, days, weeks, + milliseconds, and microseconds. Full names of the time units can + be used too. + + + If multiple integers and units are specified, the time + values are summed. If an integer is given without a unit, + s is assumed. + + + When the age is set to zero, the files are cleaned + unconditionally. + + The age field only applies to lines + starting with d, + D, and + x. If omitted or set to + -, no automatic clean-up is + done. + + If the age field starts with a tilde character + ~, the clean-up is only applied to files and + directories one level inside the directory specified, but not + the files and directories immediately inside it. + + + + Argument + + For L lines determines the destination + path of the symlink. For c, + b determines the major/minor of the device + node, with major and minor formatted as integers, separated by + :, e.g. 1:3. For + f, F, and + w may be used to specify a short string that + is written to the file, suffixed by a newline. For + C, specifies the source file or + directory. For t determines extended + attributes to be set. For a determines + ACL attributes to be set. Ignored for all other lines. + + +
+ + + Example + + /etc/tmpfiles.d/screen.conf example + screen needs two directories created at + boot with specific modes and ownership. + + d /run/screens 1777 root root 10d + d /run/uscreens 0755 root root 10d12h + t /run/screen - - - - user.name="John Smith" security.SMACK64=screen + + + /etc/tmpfiles.d/abrt.conf example + abrt needs a directory created at boot with specific mode and ownership and its content should be preserved. + + d /var/tmp/abrt 0755 abrt abrt + x /var/tmp/abrt/* + + + + + See Also + + systemd1, + systemd-tmpfiles8, + systemd-delta1, + systemd.exec5, + attr5, + getfattr1, + setfattr1, + setfacl1, + getfacl1, + chattr1 + +