SaltStack:更改 /home/*/input/ 的 Linux ACL

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 个用户做到这一点呢?

换句话说:这里有办法进行通配吗?

答案1

如果您有已知用户列表,您可能需要使用循环:

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

相关内容