Tecnicamente, a meno che pam
è impostato per controllare la tua shell con pam_shells
nessuno di questi può effettivamente impedire il tuo accesso, se non sei sulla shell. Sul mio sistema hanno anche dimensioni diverse, quindi sospetto che effettivamente facciano qualcosa. Allora qual è la differenza? perchè esistono entrambi? Perché dovrei usarne uno sopra l'altro?
-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
Risposta accettata:
Quando /sbin/nologin
è impostato come shell, se l'utente con quella shell accede, riceverà un messaggio educato che dice "Questo account non è attualmente disponibile". Questo messaggio può essere modificato con il file /etc/nologin.txt
.
/bin/false
è solo un binario che esce immediatamente, restituendo false, quando viene chiamato, quindi quando qualcuno che ha false
quando la shell accede, vengono immediatamente disconnessi quando false
esce. Impostazione della shell su /bin/true
ha lo stesso effetto di non consentire a qualcuno di accedere ma false
è probabilmente usato come convenzione su true
dal momento che è molto più efficace nel trasmettere il concetto che la persona non ha un guscio.
Guardando nologin
Nella pagina man, dice che è stato creato in 4.4 BSD (primi anni '90), quindi è arrivato molto tempo dopo false
è stato creato. L'uso di false
come shell è probabilmente solo una convenzione riportata dai primi giorni di UNIX.
nologin
è l'opzione più user-friendly, con un messaggio personalizzabile dato all'utente che tenta di accedere, quindi teoricamente vorresti usarlo; ma entrambi nologin
e false
avrà lo stesso risultato finale di qualcuno che non ha una shell e non è in grado di entrare.