Técnicamente, a menos que pam
está configurado para verificar su shell con pam_shells
ninguno de estos puede evitar su inicio de sesión, si no está en el shell. En mi sistema son incluso de diferentes tamaños, por lo que sospecho que realmente hacen algo. Entonces, ¿cuál es la diferencia? ¿Por qué existen ambos? ¿Por qué usaría uno sobre el otro?
-rwxr-xr-x 1 root root 21K Feb 4 17:01 /bin/false
-rwxr-xr-x 1 root root 4.7K Mar 2 14:59 /sbin/nologin
Respuesta aceptada:
Cuando /sbin/nologin
está configurado como shell, si el usuario con ese shell inicia sesión, recibirá un mensaje cortés que dice "Esta cuenta no está disponible actualmente". Este mensaje se puede cambiar con el archivo /etc/nologin.txt
.
/bin/false
es solo un binario que sale inmediatamente, devolviendo falso, cuando se llama, por lo que cuando alguien que tiene false
cuando Shell inicia sesión, se desconectan inmediatamente cuando false
salidas Configurando el shell en /bin/true
tiene el mismo efecto de no permitir que alguien inicie sesión pero false
probablemente se usa como una convención sobre true
ya que es mucho mejor para transmitir el concepto de que la persona no tiene caparazón.
Mirando nologin
La página del manual dice que se creó en 4.4 BSD (principios de la década de 1990), por lo que llegó mucho después de false
fue creado. El uso de false
como shell es probablemente solo una convención de los primeros días de UNIX.
nologin
es la opción más fácil de usar, con un mensaje personalizable para el usuario que intenta iniciar sesión, por lo que, en teoría, querrá usar eso; pero ambos nologin
y false
tendrá el mismo resultado final de alguien que no tiene un caparazón y no puede entrar.