Merge pull request #12750 from keszybz/tmpfiles-c-copy

Make tmpfiles C use --root
This commit is contained in:
Lennart Poettering 2019-07-11 18:13:19 +02:00 committed by GitHub
commit 6c75f78e94
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 41 additions and 2 deletions

View File

@ -36,6 +36,37 @@
<filename></filename>
<filename>/usr/share/user-tmpfiles.d/*.conf</filename>
</literallayout></para>
<programlisting>#Type Path Mode User Group Age Argument
f /file/to/create mode user group - content
F /file/to/create-or-truncate mode user group - content
w /file/to/write-to - - - - content
d /directory/to/create-and-cleanup mode user group cleanup-age -
D /directory/to/create-and-remove mode user group cleanup-age -
e /directory/to/cleanup mode user group cleanup-age -
v /subvolume/to/create mode user group - -
v /subvolume-or-directory/to/create mode user group - -
Q /subvolume/to/create mode user group - -
p /fifo/to/create mode user group - -
L /symlink/to/create - - - - symlink/target/path
c /dev/char-device-to-create mode user group - -
b /dev/block-device-to-create mode user group - -
# p+, L+, c+, b+ create target unconditionally
C /target/to/create - - - - /source/to/copy
x /path-or-glob/to/ignore - - - - -
X /path-or-glob/to/ignore/recursively - - - - -
r /empty/dir/to/remove - - - - -
R /dir/to/remove/recursively - - - - -
z /path-or-glob/to/adjust/mode mode user group - MAC context
Z /path-or-glob/to/adjust/mode/recursively mode user group - MAC context
t /path-or-glob/to/set/xattrs - - - - xattrs
T /path-or-glob/to/set/xattrs/recursively - - - - xattrs
h /path-or-glob/to/set/attrs - - - - file attrs
H /path-or-glob/to/set/attrs/recursively - - - - file attrs
a /path-or-glob/to/set/acls - - - - POSIX ACLs
A /path-or-glob/to/set/acls/recursively - - - - POSIX ACLs
# a+, A+ append ACLs
</programlisting>
</refsynopsisdiv>
<refsect1>

View File

@ -2613,13 +2613,22 @@ static int parse_line(const char *fname, unsigned line, const char *buffer, bool
case COPY_FILES:
if (!i.argument) {
i.argument = strappend("/usr/share/factory/", i.path);
i.argument = path_join(arg_root, "/usr/share/factory/", i.path);
if (!i.argument)
return log_oom();
} else if (!path_is_absolute(i.argument)) {
*invalid_config = true;
log_error("[%s:%u] Source path is not absolute.", fname, line);
return -EBADMSG;
} else if (arg_root) {
char *p;
p = prefix_root(arg_root, i.argument);
if (!p)
return log_oom();
free_and_replace(i.argument, p);
}
path_simplify(i.argument, false);
@ -2713,7 +2722,6 @@ static int parse_line(const char *fname, unsigned line, const char *buffer, bool
p = path_join(arg_root, i.path);
if (!p)
return log_oom();
free_and_replace(i.path, p);
}