SaltStack: Altere as ACLs do linux para / home / * / input /

1

Existem aproximadamente 30 usuários e 30 diretórios com essa estrutura em um servo SaltStack:

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

Eu sei como alterar as ACLs do Linux para um único arquivo via salt. Neste exemplo, o usuário "foo" recebe acesso de leitura:

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

Fonte: link

Mas como posso fazer isso para N usuários?

Com outra palavra: existe uma maneira de fazer globbing aqui?

    
por guettli 18.10.2017 / 14:47

1 resposta

2

Se você tiver uma lista de usuários conhecidos, convém usar um loop:

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

Se você não tiver, você pode obtê-lo dos minions com:

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

Em seguida, faça um loop para todos os usuários que têm um diretório input com algo como:

{% 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 %}
    
por 19.10.2017 / 11:13