What are SELinux modes
SELinux has three operating modes: Enforcing, Permissive and Disabled. Enforcing is the default mode, which enforces security policies, blocks and records illegal operations, and is suitable for production environments; Permissive mode only records violations without blocking them and is used for debugging and testing; Disabled mode completely turns off SELinux and controls permissions by traditional DAC, and is not recommended for use in production environments. You can use getenforce to view the current mode, sestatus to view the complete status, setenforce to temporarily switch modes, and modify the configuration file /etc/selinux/config to permanently change the mode and require a restart to take effect.

SELinux has three main modes of operation, each of which provides a different degree of control over system security. Understanding these patterns can help you better configure security policies for servers or devices.
1. Enforcing mode
This is the default mode of SELinux and the most restrictive mode. In this mode, SELinux not only logs violations but also proactively blocks operations that do not comply with security policy.
- The system enforces access control according to SELinux policies
- If a process attempts to access a resource it is not supposed to access, the operation is denied
- Suitable for use in production environments, providing the strongest security protection
For example, if you are running a web service (such as Apache) and its configuration files are moved to a non-standard directory, SELinux may prevent it from reading these files unless you update the corresponding policy or change the file context.
2. Permissive mode
In this mode, SELinux will only log policy violations but will not actually prevent them. This mode is mainly used for debugging and testing.
- All operations will be performed even if SELinux policy is violated
- These violations will be recorded in the log to facilitate troubleshooting.
- Often used in the development or debugging phase to avoid service crashes due to permission issues
If you are not sure whether SELinux will interfere when deploying a new service, you can first switch to Permissive mode, observe the logs, and then switch back to Enforcing after confirming that there are no problems.
3. Disabled mode
As the name suggests, in this mode SELinux is completely disabled and no longer performs any security control on the system.
- SELinux does not load policy and does not log or block any operations
- System behavior is fully controlled by traditional Linux DAC
- While management is simplified, an additional layer of security is lost
It is not recommended to turn off SELinux in a production environment unless you have special needs and are aware of the consequences. Many security hardening guides require keeping SELinux enabled.
How to view and switch SELinux mode?
You can quickly check the current mode by:
- View current status:
getenforce - See full configuration:
sestatus
To temporarily switch modes, use the command:
- Switch to Enforcing:
setenforce 1 - Switch to Permissive:
setenforce 0
If you want to permanently change the mode, you need to modify SELINUX= line in the configuration file /etc/selinux/config and then restart the system.
That's basically it. Although there are not many modes of SELinux, it is very critical in actual operation and maintenance, especially when troubleshooting service startup failures or permission issues.
The above is the detailed content of What are SELinux modes. For more information, please follow other related articles on the PHP Chinese website!
Hot AI Tools
Undress AI Tool
Undress images for free
AI Clothes Remover
Online AI tool for removing clothes from photos.
Undresser.AI Undress
AI-powered app for creating realistic nude photos
ArtGPT
AI image generator for creative art from text prompts.
Stock Market GPT
AI powered investment research for smarter decisions
Hot Article
Popular tool
Notepad++7.3.1
Easy-to-use and free code editor
SublimeText3 Chinese version
Chinese version, very easy to use
Zend Studio 13.0.1
Powerful PHP integrated development environment
Dreamweaver CS6
Visual web development tools
SublimeText3 Mac version
God-level code editing software (SublimeText3)
Hot Topics
20516
7
13630
4
How to manage software packages using Dnf and Rpm in Linux?
Mar 07, 2026 am 01:50 AM
dnfinstall prompts packagenotfound because it queries the enabled warehouse rather than the local installation status; rpm-q queries the local RPM database, and the scopes of the two are different.
How to monitor system performance and resources in Linux? (Top & Htop)
Mar 06, 2026 am 01:04 AM
The total top CPU usage is not 100% because it is calculated based on a single core, and the maximum is 800% for an 8-core system; the htop terminal size error needs to be fixed with eval$(resize); the real memory pressure is available rather than used; top command line truncation can be solved with the -c parameter.
How to setup file sharing using Samba on Linux? (SMB Protocol)
Mar 13, 2026 am 12:33 AM
The main reason why Windows cannot see the Samba share is that the firewall blocks UDP137–139/TCP445 or NetBIOS name resolution fails; it is necessary to confirm that the workgroup is consistent, the interfaces are configured correctly, the file permissions match forceuser/forcegroup, and set doscharset=UTF-8 to solve Chinese garbled characters.
How to extend a Logical Volume (LVM) in Linux without downtime?
Mar 13, 2026 am 12:53 AM
Logical volumes and file systems can be expanded online. You need to expand the LV first and then the file system. It is recommended to use lvextend-r for automatic synchronization adjustment, but you must ensure that the LVM and file system tool versions are compatible.
How to check open ports and listening services in Linux? (Netstat & SS)
Mar 10, 2026 am 01:08 AM
Netstat displays fewer LISTEN ports than ss because it does not display process information by default that non-root users do not have access to; ss can read all listening sockets by default without process names, and sudonetstat-tulpn is required to display them completely.
How to set up SSH key authentication on Linux? (Passwordless Login)
Mar 11, 2026 am 12:46 AM
It is recommended to use ssh-keygen-ted25519 to generate a key pair, because it is faster, more secure, and has a shorter key than the default RSA; it is necessary to strictly set the ~/.ssh directory permissions to 700 and authorized_keys to 600, and use ssh-v to confirm whether the client is Offering public key and whether the server rejects it.
How to format disk partitions using the command line in Linux?
Mar 15, 2026 am 12:01 AM
When fdisk is stuck at the Command prompt, it is normally waiting for input. Enter q to exit safely; you must umount before mkfs, otherwise it may fail silently; partedmkpart does not support the specified file system type, and mkfs needs to be executed separately.
How to configure a static IP address on Linux? (Netplan & NetworkManager)
Mar 14, 2026 am 12:02 AM
Netplan reports "InvalidYAML" when configuring a static IP due to indentation errors, missing spaces after colons, or mixed tabs; gateway4 has been deprecated and routes to:default must be used instead; NetworkManager needs to be modified before down/up takes effect; the renderer field is used to determine the backend during coexistence; incorrect DNS configuration will cause ping to succeed but curl to fail.





