Per i controlli all’accesso, di solito Linux utilizza il Discretionary Access Control (DAC). Gli utenti o le applicazioni a cui sono stati conferiti i diritti relativi, di solito hanno accesso illimitato ai file e processi corrispondenti del sistema operativo. Nel caso del Mandatory Access Control utilizzato da SELinux, invece, un amministratore conferisce alle linee guida di sicurezza già ben definite un ulteriore attributo che stabilisce le condizioni e le misure in cui il titolare di diritti può accedere a processi o dati precisi del sistema operativo. In caso di mancata definizione di tali condizioni o misure (quindi degli attributi), l’accesso viene negato.
SELinux distribuisce diverse etichette per regolarsi:
- User (utente)
- Role (ruolo)
- Type (tipo)
- Level (livello)
Queste etichette sono valide per ciascun processo e ciascun file e possono essere incorporate nelle linee guida definite. In questo modo, ad esempio, un’applicazione può accedere solo a una cartella con un’etichetta precisa. La verifica delle linee guida prende il nome di SELinux Enforcement.