Ansible Windows ACL - PullRequest
       11

Ansible Windows ACL

0 голосов
/ 07 ноября 2018

Используя Ansible 2.7, я хочу изменить ACL для конкретной папки Windows, если она существует.

Вот код, который я использую:

  - name: check that folder exists
    win_stat:
      path: C:\Program Files (x86)\MyFolder
    register: folderPresent

  - name: cut ACL inheritance and copy existing ones
    win_acl_inheritance:
      path: C:\Program Files (x86)\MyFolder
      state: absent
      reorganize: yes
    when: folderPresent.stat.exists

  - name: Add write right for authenticated users
    win_acl:
      path: C:\Program Files (x86)\MyFolder
      user: ThisMachine\Utilisateurs
      rights: Write
      type: allow
      state: present
      inherit: ContainerInherit, ObjectInherit
      propagation: 'InheritOnly'
    when: folderPresent.stat.exists

Проблема возникает с командой win_acl. Я получаю: " произошла ошибка при попытке предоставить разрешение на запись в C: \ Program Files (x86) \ MyFolder ", после чего следует французское сообщение " Невозможно de traduire, что определено для вас les réféferences d'identité . " (что означает невозможно перевести некоторые или все идентификационные ссылки ).

Машины с Windows, с которыми я имею дело, установлены на французском языке, поэтому я предполагаю, что я не правильно указываю целевого пользователя ACL.

До сих пор я пробовал много вариантов параметра "user" для команды win_acl:

  • Thismachine \ Utilisateurs
  • BUILTIN \ Utilisateurs
  • Thismachine \ Users
  • S-1-5-32-545
  • ...

Но ни один из них не работает ...

1 Ответ

0 голосов
/ 07 ноября 2018

An Ansible bug влияет на win_acl при работе с такими папками, как:

  • c: \ Program Files
  • c: \ Program Files (x86)
  • C: \ Windows

Поэтому обходной путь, который мне помог, заключался в использовании команды Windows вместо модуля Ansible win_acl:

win_shell: icacls 'C:/Program Files (x86)/MyFolder/' /grant '*S-1-5-11:(OI)(CI)F' /T

Где:

  • 'C:/Program Files (x86)/MyFolder/' целевая папка, использующая / и не \, заключенная в кавычки из-за пробелов внутри
  • *S-1-5-1 хорошо известный SID Windows для аутентифицированных пользователей, звездочка запускает SID вместо группы или имени пользователя (я не смог здесь использовать ничего, кроме SID)
  • (OI)(CI): распространяет наследование на файлы и папки
  • /T: сделать это рекурсивно для подпапок
...