On this page
community.general.sefcontext – Manages SELinux file context mapping definitions
Note
This plugin is part of the community.general collection (version 3.8.1).
You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install community.general.
To use it in a playbook, specify: community.general.sefcontext.
Synopsis
- Manages SELinux file context mapping definitions.
 - Similar to the 
semanage fcontextcommand. 
Requirements
The below requirements are needed on the host that executes this module.
- libselinux-python
 - policycoreutils-python
 
Parameters
| Parameter | Choices/Defaults | Comments | 
|---|---|---|
| ftype
        
        string
         | 
      
       
  | 
      
        
        The file type that should have SELinux contexts applied.
        
       
        The following file type options are available:
        
       a for all files,
       b for block devices,
       c for character devices,
       d for directories,
       f for regular files,
       l for symbolic links,
       p for named pipes,
       s for socket files.
        | 
     
| ignore_selinux_state
        
        boolean
         | 
      
       
  | 
      
        
        Useful for scenarios (chrooted environment) that you can't get the real SELinux state.
         | 
     
| reload
        
        boolean
         | 
      
       
  | 
      
        
        Reload SELinux policy after commit.
        
       
        Note that this does not apply SELinux file contexts to existing files.
         | 
     
| selevel
        
        string
         | 
      
        
        SELinux range for the specified target.
        
       aliases: serange  | 
     |
| setype
        
        string / required
         | 
      
        
        SELinux type for the specified target.
         | 
     |
| seuser
        
        string
         | 
      
        
        SELinux user for the specified target.
         | 
     |
| state
        
        string
         | 
      
       
  | 
      
        
        Whether the SELinux file context must be  absent or present.
        | 
     
| target
        
        string / required
         | 
      
        
        Target path (expression).
        
       aliases: path  | 
     
Notes
Note
- The changes are persistent across reboots.
 - The community.general.sefcontext module does not modify existing files to the new SELinux context(s), so it is advisable to first create the SELinux file contexts before creating files, or run 
restoreconmanually for the existing files that require the new SELinux file contexts. - Not applying SELinux fcontexts to existing files is a deliberate decision as it would be unclear what reported changes would entail to, and there’s no guarantee that applying SELinux fcontext does not pick up other unrelated prior changes.
 
Examples
- name: Allow apache to modify files in /srv/git_repos
  community.general.sefcontext:
    target: '/srv/git_repos(/.*)?'
    setype: httpd_git_rw_content_t
    state: present
- name: Apply new SELinux file context to filesystem
  ansible.builtin.command: restorecon -irv /srv/git_repos
  Authors
- Dag Wieers (@dagwieers)
 
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
 https://docs.ansible.com/ansible/latest/collections/community/general/sefcontext_module.html