A volte, potrebbe essere necessario un account utente con una password per l'autenticazione con un sistema, ma non è necessaria una shell interattiva con quel nome utente. Questo aiuta a impedire che l'account utente venga utilizzato per accedere al sistema con quella password. In questi scenari, possiamo impostare la shell dell'utente su /sbin/nologin o /bin/false . Se l'utente tenta di accedere al sistema, la shell nologin chiude la connessione dell'utente.
Un esempio di tale situazione potrebbe essere un server di posta, in cui è necessario un account utente per archiviare la posta e le password affinché l'utente possa autenticarsi con il client di posta e recuperare la posta; tuttavia, se viene assegnata la shell /sbin/nologin, l'utente non può accedere al sistema utilizzando quell'account.
Poiché entrambi i comandi restituiscono un valore diverso da zero, non c'è molta differenza. Originariamente, /bin/false è stato creato per un comando generale poiché restituisce sempre un valore diverso da zero. Quindi, sembra che sia usata come shell dell'utente nologin prima di creare /sbin/nologin.
D'altra parte, /sbin/nologin è stato creato per la shell dell'utente nologin, ha una funzione per inviare un messaggio in /etc/nologin.txt . L'uso di /sbin/nologin è consigliato per la shell dell'utente nologin, perché è incluso in /etc/shells .
$ man -k nologin nologin(5) - disallow logins nologin(8) - politely refuse a login pam_nologin(8) - No Login PAM module
$ man -k false ... false(1) - Return false value