ansible의 win_acl에서 "적용 대상 :이 폴더 만"을 실현하는 방법
소개
ansible에서 Windows 설정을 시도했습니다.
폴더 권한 설정에서 아무래도 하고 싶었던 적이 없었다.
여러가지 시도해 보니, 공식 문서에 기재되어 있지 않은 방법을 사용할 수 있었다.
그런 이야기입니다.
전제
환경
환경
관리 대상
ansible 실행자
설명하지 않는 것
ansible 설치, 기본적인 사용 방법 등은 생략합니다.
그리고 「왜 그런 설정하고 싶어?」도 신경쓰지 않는 방향으로.
주제
하고 싶은 일
완성형
폴더 프로퍼티의 보안의 상세 설정, 또는,icacls의 출력 결과가 그림과 같이 되면 완성.
ansible로 실현하는 방법
win_file, win_acl, win_acl_inheritance로 실현됩니다.
우선 이틀 정도 걸쳐 도착한 완성형은 다음과 같다.
hosts
[windows]
192.168.0.2
[windows:vars]
ansible_user=※ユーザ名※
ansible_password=※パスワード※
ansible_port=5986
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
playbook.yml
- hosts: windows
tasks:
- name: フォルダ作成
win_file:
path: T:\Shares\test
state: directory
- name: 許可:フルコントロール:このフォルダー、サブフォルダ―およびファイル(Administrators, SYSTEM)
win_acl:
path: T:\Shares\test
rights: "{{ item.rights }}"
user: "{{ item.user }}"
type: allow
# inherit のデフォルトは以下
inherit: ObjectInherit,ContainerInherit
with_items:
- { rights: FullControl, user: BUILTIN\Administrators }
- { rights: FullControl, user: SYSTEM }
- name: 許可:読み取りと実行:このフォルダのみ(Users)
win_acl:
path: T:\Shares\test
rights: "{{ item.rights }}"
user: "{{ item.user }}"
type: allow
# win_aclドキュメントには明示されていないが、Noneの指定も可能
inherit: None
with_items:
- { rights: ReadAndExec, user: BUILTIN\Users }
- name: 継承無効化
win_acl_inheritance:
path: T:\Shares\test
state: absent
실행 방법
% ansible-playbook -i hosts playbook.yml
win_acl에서 '적용 대상'을 변경하는 방법
win_acl에서 사용 권한 항목의 "적용 대상"은 inherit 매개 변수로 지정됩니다.
「 win_acl – Set file/directory/registry permissions for a system user or group 」에 이하와 같이 기재되어 있습니다.
실제로 시도해 보면 이런 느낌.
inherit의 설정치
적용 대상 표시
ObjectInherit
이 폴더와 파일
ContainerInherit
이 폴더와 하위 폴더
ContainerInherit,ObjectInherit
이 폴더, 하위 폴더 및 파일
※inherit 파라미터 생략시
이 폴더, 하위 폴더 및 파일 (디렉토리 기본값 적용)
어라? 이 폴더만 지정할 수 없습니까?
실은 「inherit: None」을 사용할 수 있다
뭐 위의 yml 파일로 대답해 버리는 것입니다만.
Comments 링크 를 따라가면 ContainerInherit, ObjectInherit 이외에
None 을 지정할 수 있을 것 같아서, 해 보면 할 수 있었다고 하는 이야기였습니다.
inherit의 설정치
적용 대상 표시
None
이 폴더만
결론
vscode에서 작업을 별도의 파일로 만들고 inherit: None
를 지정하면 "그런 값은 허용되지 않습니다."라고 화가납니다.
실행에는 문제 없기 때문에 상관없습니다만, 이 에러만 무시하는 것 같은 설정은 할 수 없는 것인가…
win_acl은 권한 추가 명령이므로 여러 가지 실험을 원할 때마다 폴더를 삭제하는 것이 좋습니다.
그렇게 하지 않으면 과거의 설정이 겹쳐져, 예상한 결과가 되지 않는 경우가 있습니다.
Reference
이 문제에 관하여(ansible의 win_acl에서 "적용 대상 :이 폴더 만"을 실현하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kujiraza/items/5a60ae6b1ba90c8db1e3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(ansible의 win_acl에서 "적용 대상 :이 폴더 만"을 실현하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kujiraza/items/5a60ae6b1ba90c8db1e3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)