2016-08-03 308 views
1

假设有一个目录/ dir/tools。 工具包含一堆脚本,比如说a.sh,b.sh,c.sh.Ansible:在.yml文件中更改目录中文件的权限

我需要设置的a.sh,b.sh和c.sh到0775.

我通过以下方式完成目前它的权限:

- name: Fix 'support_tools' permissions 
    file: path={{ item }} owner=abc group=abc mode=0775 
    with_items: 
    - /dir/tools/a.sh 
    - /dir/tools/b.sh 
    - /dir/tools/c.sh 

顺便说一句, 'file:path =/dir/tools owner = abc group = abc mode = 0775'设置工具目录的权限,但不是其中的文件的权限。

有没有更好的方法来实现这一目标?

+0

你有没有尝试添加'状态= directory'到第二次尝试? – ydaetskcoR

回答

5

尝试:

- name: Fix 'support_tools' permissions 
    file: path=/dir/tools owner=abc group=abc mode=0775 state=directory recurse=yes 
+0

另一个问题:如果除了a.sh,b.sh和c.sh之外还有其他目录,并且我不希望更改它们的权限,那么它们如何排除? – Aarvi

+0

@Aarvi不幸的是它是全部或没有。 –

0

您可以跳过指定组为好。然后通过使用--check参数运行它来检查你的yml文件。

0

尝试:

- name: Fix 'support_tools' permissions 
    shell: 'chmod a+x /dir/tools/*'