tmpfiles.d glob はディレクトリでのみ動作します。

tmpfiles.d glob はディレクトリでのみ動作します。

ドキュメントによると、globを使用してパスを指定できるはずですが、/*/ディレクトリにglobを使用することはサポートされていないようです。これは、このタイプのglobがtmpfiles.d「拡張glob仕様」の一部であるためです。ルール?

たとえば、

$ cd $(mktemp -d)
$ mkdir -p folder/{sub1,sub2}
$ touch folder/{file1,file2}
$ chmod -R 0700 folder 
$ echo "z $PWD/folder/*/ 0770 - - - -" | systemd-tmpfiles --create -
$ ls -l folder
total 8
-rwxrwx--- 1 mathiassven users    0 Nov 16 05:15 file1
-rwxrwx--- 1 mathiassven users    0 Nov 16 05:15 file2
drwxrwx--- 2 mathiassven users 4096 Nov 16 05:15 sub1
drwxrwx--- 2 mathiassven users 4096 Nov 16 05:15 sub2

ご覧のとおり、このルールはファイルにも適用されます。

私がこれをしたい理由は、次の規則が必要です。

Z /srv/dav    0664 - - - -
Z /srv/dav/*/ 0774 - - - -

これはすべてのファイルに/srv/dav存在します0664が、ディレクトリには存在しません0774。ディレクトリがグローバルに有効な場合でも、これを簡単に達成できるかどうかはわかりませんが、再帰/srv/dav/*/的に適用する方法がわからないためです。

関連情報