Ansible – 模式755的目录和644的文件recursion

我想允许任何人列出并读取我的目录树中的所有文件,但我不想让这些文件成为可执行文件:

dir \subdir1 file1 \subdir2 file2 ... \subdirX fileX 

以下任务使我的目录和文件可读,但它也使所有文件都可执行:

 - name: Make my directory tree readable file: path: dir mode: 0755 recurse: yes 

另一方面,如果我select模式0644,那么我所有的文件都不可执行,但我无法列出我的目录。

是否有可能为目录树中的所有目录设置模式755并为所有文件设置644?

谢谢。

自1.8版以来,Ansible支持符号模式。 因此,以下将执行您想要的任务:

 - name: Make my directory tree readable file: path: dir mode: u=rwX,g=rX,o=rX recurse: yes 

因为X(而不是x)只适用于至less有一个x位设置的目录或文件。

Ansible文件/复制模块不会为您提供基于文件types的指定权限的粒度,因此您可能需要按照以下方式手动执行此操作:

 - name: Ensure directories are 0755 command: find {{ path }} -type d -exec chmod -c 0755 {} \; register: chmod_result changed_when: "chmod_result.stdout != \"\"" - name: Ensure files are 0644 command: find {{ path }} -type f -exec chmod -c 0644 {} \; register: chmod_result changed_when: "chmod_result.stdout != \"\"" 

这些将通过{{ path }}recursion并将每个文件或目录的权限更改为指定的权限。

Interesting Posts