Penso che parte della risposta si riferisca a qualcosa che hai menzionato:
I'm used to setting up Posix file permissions properly, so one of the first steps I always perform is chown apache:apache -R /var/www/. Subsequently, I only use the apache user to interact with the webroot or the web applications.
Perché lo fai?
Molto probabilmente per aiutare a proteggere il tuo sistema da un processo anomalo, o scendere a compromessi.
seLinux è un altro livello / meccanismo per ottenere lo stesso risultato.
Un approccio sensato (e migliore) alla sicurezza è quello di stratificare le difese e, più in generale, di provare a utilizzare diversi mezzi per proteggere il sistema.
Se si sovrappongono, grandi: i modi più diversi di proteggere la stessa cosa, più un attaccante deve lavorare per raggiungere i propri obiettivi.
L'idea di base con seLinux che impedisce la scrittura (o la lettura) è che, come con POSIX, è necessario concedere esplicitamente l'accesso a un programma che richiederà.
/var/www
sarà in un gran numero di casi legittimamente di sola lettura: i siti statici sarebbero un caso ovvio.
Nel tuo caso, non menzioni mai chmod
'ing / var / www, quindi molto probabilmente sarebbe 750 (o 700), e di proprietà di apache.
In tal caso, almeno seLinux ti fa pensare se quel chmod e il livello di accesso siano effettivamente necessari: a meno che tu non abbia effettivamente bisogno di scrivere file, probabilmente non lo è, e sembra ragionevole dire che seLinux aiuta infatti a evitare che funzionalità / accesso siano disponibili e non necessarie.
Ti stai concentrando sulle qualità simili a POSIX, ma seLinux ti consente anche di impedire ad apache di avviare le connessioni in uscita, ad esempio, e può limitare le connessioni in uscita consentite a un piccolo numero di porte.
Personalmente, a volte trovo utile vedere le capacità di seLinux come affini a un daemon auditd che impone - si sta guardando al comportamento, e può essere molto più specifico sul comportamento accettabile, rispetto a POSIX rende possibile (in parte perché POSIX non è tanto protezione e altro sulla compatibilità e fornendo un insieme di funzionalità di base e stabile).
Potrei pagare per leggere ciò che Wikipedia ha da dire su entrambi POSIX e SELinux - e anche considerare il fatto che POSIX fornisce Controllo accessi discrezionale , dove seLinux fornisce Controllo di accesso obbligatorio .
Le differenze DAC / MAC sono un punto chiave per rispondere alla tua domanda: il MAC è generalmente un criterio a livello di sistema che è controllato centralmente (tipicamente con un occhio per garantire che un sistema funzioni correttamente), dove DAC consente decisioni locali da fare - c'è un'evidente tensione tra questi approcci, e seLinux è lì per assicurare che la politica globale venga applicata anche di fronte a decisioni locali che potrebbero minarlo.