在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 %}