![Race-Condition für systemd-tmpfiles](https://rvso.com/image/770090/Race-Condition%20f%C3%BCr%20systemd-tmpfiles.png)
Ich habe eine Konfigurationsdatei /etc/tmpfiles.d/test.conf
:
z /dir/* 660 - - -
z /dir/subdir 2770 - - -
z /dir/subdir/* 660 - - -
Z /dir - root test -
Wenn ich laufe systemd-tmpfiles --prefix=/dir --create /etc/tmpfiles.d/test.conf ; ll /dir
, sind die Zugriffsrechte von /dir/subdir
zufällig
- manchmal
drwxrws---
(von der/dir/*
Regel) und - manchmal
drw-rw----
(von der/dir/subdir
Regel).
Wie mache ich es deterministisch?
Der Punkt ist, dass das Verzeichnis /dir
viele Dateien und ein Unterverzeichnis enthält und ich möchte rw
Zugriffsrechte für die Dateien und rwx
Zugriffsrechte für das Unterverzeichnis festlegen.
Centos 7
Antwort1
Wörtliche (Un-)Übereinstimmung von /dir/subdir
in /etc/tmpfiles.d/test.conf
:
z /dir/[!s]* 660 - - -
z /dir/s[!u]* 660 - - -
z /dir/su[!b]* 660 - - -
z /dir/sub[!d]* 660 - - -
z /dir/subd[!i]* 660 - - -
z /dir/subdi[!r]* 660 - - -
z /dir/subdir?* 660 - - -
z /dir/subdir 2770 - - -
z /dir/subdir/* 660 - - -
Z /dir - root test -
Suffix(un)übereinstimmung von /dir/*.test.sh
in /etc/tmpfiles.d/test.conf
:
z /dir/*[!t].sh 750 - - -
z /dir/*[!s]t.sh 750 - - -
z /dir/*[!e]st.sh 750 - - -
z /dir/*[!t]est.sh 750 - - -
z /dir/*[!.]test.sh 750 - - -
z /dir/*.test.sh 500 - - -
Mir gefällt diese Lösung nicht. Kann mir bitte jemand etwas Besseres einfallen lassen?