L'unica vera ragione tecnica di cui sono a conoscenza è la possibilità di sostituzione di file maligni. Prendi in considerazione un utente malintenzionato che trova un modo per scrivere su file arbitrari. Se riescono a sovrascrivere / sbin / nologin o / bin / false con una copia di / bin / bash, allora possono concepibilmente trovare un modo per accedere come utente di un servizio e continuare ad elevare i loro privilegi da lì.
Tuttavia, / dev / null non può essere banalmente sostituito in questo modo, per vari motivi:
- È un dispositivo, non un file piatto
- Qualsiasi cosa scritta su di essa scompare, quindi una semplice sovrascrittura non funzionerà
- Se qualcuno lo sostituisce con / bin / bash, potrebbe a sua volta essere sovrascritto da uno dei molti programmi che usano / dev / null come un sink di bit, svincolando l'attacker
- Se qualcuno lo sostituisse, potrebbe rompere alcune funzionalità del sistema in un modo che avviserà gli amministratori che qualcosa è sbagliato, molto più che sostituire 'nologin' o anche 'false'.
C'è anche una ragione non tecnica, che è che molti amministratori sono legati dalla tradizione e / o dalle abitudini che hanno imparato molto tempo fa e / dev / null era una volta una scelta più comune per questo uso (sono carina certo / sbin / nologin non esisteva 20 anni fa). Fai di quello che vuoi.