Access-Control-List
SaltStack:更改 /home/*/input/ 的 linux ACL
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 %}