Il processo Postfix master è quello che avvia gli altri daemon. In particolare, lancia il demone che consegna la posta localmente; quest'ultimo deve essere in grado di impersonare qualsiasi ID utente nel sistema, il che implica iniziare la sua vita come root
. Pertanto, è in gran parte inevitabile che il processo principale venga eseguito come root; altrimenti, non funzionerebbe affatto.
Inoltre, il "rischio" coinvolto nell'esecuzione di cose come root è spesso sovrastimato. Per esempio, sul mio server, quello che temo di più è che la mia macchina sarebbe sovvertita e usata come relè per attaccare altre persone. Se un utente malintenzionato ottiene l'accesso come root o solo un accesso "normale utente" non cambia molto le cose a tale riguardo.
C'è un'abitudine diffusa di trasformare i daemon root in demoni non-root, e quindi di rallegrarsi del "miglioramento della sicurezza". Il miglioramento è reale nello scenario mainframe , dove molti utenti hanno account di shell sulla stessa macchina e l'attacker è uno di questi utenti, intento a ottenere l'accesso ai file di altri utenti. Tuttavia, il modello del mainframe è in gran parte scomparso (un tempo era diffuso nelle università, ma oggigiorno ogni studente ha il proprio computer con cui giocare). Quando le macchine sono "personali" (ad esempio, si dispone di un proprio server e nessun individuo ostile ha un account su di esso), i benefici dell'esecuzione di alcuni daemon sotto un UID non root sono minimi. Non nuoce da solo, ma non giustifica il fatto di andare fuori strada in modi complessi per "riparare i daemon di root".
Ciò che rende sicuri i daemon di Postfix è l'assenza di buffer overflow o vulnerabilità simili; correre come non-root è semplicemente un modo per mitigare le conseguenze nel caso in cui una vulnerabilità fosse presente e sfruttata da un utente malintenzionato; e la mitigazione non guadagna molto quando la macchina non è un mainframe condiviso.