修改 setype

  1. 撰寫 sefcontext.yml 腳本,安裝 policycoreutils-python-utils,設定目錄 /webtest 及其次目錄的 fcontext 為 httpd_sys_content_t,執行命令 restorecon 將 /wevtest 目錄及其次目錄的 fcontext 還原成預設值。
    [deyu1@kvm19 ansible]$ vim sefcontext.yml 
    [deyu1@kvm19 ansible]$ cat sefcontext.yml
    ---
    - name: Web test
      hosts: dev
      tasks:
        - yum:
            name: policycoreutils-python-utils
            state: latest
    
        - sefcontext:
            target: '/webtest(/.*)?'
            setype: httpd_sys_content_t
            state: present
    
        - command: restorecon -irv /webtest
    
  2. ansible-playbook 執行腳本 sefcontext.yml。
    [deyu1@kvm19 ansible]$ ansible-playbook sefcontext.yml 
    
    PLAY [Web test] ****************************************************************
    
    TASK [Gathering Facts] *********************************************************
    ok: [kvm11]
    
    TASK [yum] *********************************************************************
    changed: [kvm11]
    
    TASK [sefcontext] **************************************************************
    changed: [kvm11]
    
    TASK [command] *****************************************************************
    changed: [kvm11]
    
    PLAY RECAP *********************************************************************
    kvm11 : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
    
  3. ansible 使用 shell 模組查看主機 test 的 /webtest 目錄,檔案的 index.html 的 fcontext 已改成 httpd_sys_content_t
    [deyu1@kvm19 ansible]$ ansible dev -m shell -a "ls -Z /webtest"
    kvm11 | CHANGED | rc=0 >>
    system_u:object_r:httpd_sys_content_t:s0 index.html
    
  4. 使用 curl 連線 kvm11 的 /webtest 目錄,成功回應訊息。
    [deyu1@kvm19 ansible]$ curl http://kvm11/webtest/
    WebTest on kvm11