La version traditionnelle de Linux utilise le Discretionary Access Control (DAC) comme contrôle des accès. Les utilisateurs et les applications disposant de droits correspondants bénéficient généralement d’un accès illimité aux fichiers et processus concernés du système d’exploitation. Avec le Mandatory Access Control de SELinux, l’administrateur détermine à travers des règles de sécurité clairement définies dans quelles conditions et dans quel contexte un utilisateur détenant des droits peut accéder à certains processus ou fichiers du système d’exploitation. Si ces conditions ou ce contexte (c’est-à-dire les attributs) ne sont pas réunis, l’accès est refusé.
Pour déterminer ces règles dans SELinux, on attribue différentes étiquettes :
- utilisateur
- rôle
- type
- niveau
Ces étiquettes peuvent être définies pour chaque processus et fichier et reprises dans les règles déterminées. Par conséquent, une application peut uniquement accéder aux dossiers disposant d’une étiquette précise. La vérification des règles est appelée SELinux Enforcement.