![tmpfiles.d glob은 디렉토리에서만 작동합니다.](https://linux55.com/image/226542/tmpfiles.d%20glob%EC%9D%80%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EC%97%90%EC%84%9C%EB%A7%8C%20%EC%9E%91%EB%8F%99%ED%95%A9%EB%8B%88%EB%8B%A4..png)
문서에 따르면 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/*/
재귀적으로 적용하는 방법을 모르기 때문입니다 .