根据文档,我应该能够使用 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/*/
与递归应用它交互。