SaltStack:更改/ home / * / input /

在SaltStack minion上有大约30个用户和30个目录结构:

/home/user1/input/ /home/user2/input/ /home/user3/input/ /home/user4/input/ ... 

我知道如何通过salt更改单个文件的linux ACL。 在这个例子中,用户“foo”获取读访问权限:

 home_user1_input_readable: acl.present: - name: /home/user1/input - acl_type: user - acl_name: foo - perms: r 

来源: https : //docs.saltstack.com/en/latest/ref/states/all/salt.states.linux_acl.html

但是我怎么能为N个用户做这个?

换句话说:有没有办法在这里做globbing?

如果你有一个已知的用户列表,你可能想要使用一个循环:

 {% for user in users %} home_{{ user }}_input_readable: acl.present: - name: /home/{{ user }}/input - acl_type: user - acl_name: foo - perms: r {% endfor %} 

如果你没有,你可以从下面的人那里得到:

 {% set users = salt['user.list_users']() %} 

然后循环所有的用户有一个类似的input目录:

 {% for user in users %} {% set userdef = salt['user.info'](user) %} {% if salt['file.directory_exists'](userdef.home + '/input') %} home_{{ user }}_input_readable: acl.present: - name: /home/{{ user }}/input - acl_type: user - acl_name: foo - perms: r {% endif %} {% endfor %}