La única razón técnica verdadera que conozco es la posibilidad de una sustitución de archivos maliciosa. Considere un atacante que encuentra una manera de escribir en archivos arbitrarios. Si pueden sobrescribir / sbin / nologin o / bin / false con una copia de / bin / bash, entonces es probable que puedan encontrar una manera de iniciar sesión como usuario del servicio y continuar elevando su privilegio desde allí.
Sin embargo, / dev / null no se puede reemplazar de forma trivial de esta manera, por varias razones:
- Es un dispositivo, no un archivo plano
- Todo lo que se escriba en él desaparecerá, por lo que una simple sobrescritura no funcionará
- Si alguien lo reemplazó con / bin / bash, a su vez podría ser sobrescrito por uno de los muchos programas que usan / dev / null como un poco de hundimiento, lo que frustrará al atacante
- Si alguien lo reemplazó, podría romper alguna funcionalidad del sistema de manera que alertará a los administradores de que algo está mal, mucho más que reemplazar 'nologin' o incluso 'false'.
También hay una razón no técnica, que es que muchos administradores están obligados por la tradición y / o los hábitos que aprendieron hace mucho tiempo, y / dev / null fue una vez una opción más común para este uso (soy bastante seguro / sbin / nologin no existía hace 20 años). Haz de eso lo que quieras.