Technisch gesehen, es sei denn pam
ist eingerichtet, Ihre Shell mit pam_shells
zu überprüfen Keines davon kann Ihre Anmeldung tatsächlich verhindern, wenn Sie sich nicht in der Shell befinden. Auf meinem System sind sie sogar unterschiedlich groß, also vermute ich, dass sie tatsächlich etwas bewirken. Was ist also der Unterschied? warum gibt es sie beide? Warum sollte ich einen über dem anderen verwenden?
-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
Akzeptierte Antwort:
Wenn /sbin/nologin
als Shell festgelegt ist, erhalten Benutzer, wenn sie sich mit dieser Shell anmelden, eine höfliche Nachricht mit der Aufschrift „Dieses Konto ist derzeit nicht verfügbar.“ Diese Nachricht kann mit der Datei /etc/nologin.txt .
/bin/false
ist nur eine Binärdatei, die sofort beendet wird und falsch zurückgibt, wenn sie aufgerufen wird, also wenn jemand false
hat Wenn sich die Shell anmeldet, werden sie sofort abgemeldet, wenn false
Ausgänge. Setzen der Shell auf /bin/true
hat den gleichen Effekt, dass jemandem nicht erlaubt wird sich anzumelden, aber false
wird wahrscheinlich als Konvention für true
verwendet da es viel besser vermittelt, dass die Person keine Hülle hat.
Betrachten wir nologin
In der Manpage heißt es, dass es in 4.4 BSD (frühe 1990er) erstellt wurde, also kam es lange nach false
wurde erstellt. Die Verwendung von false
als Shell ist wahrscheinlich nur eine Konvention, die aus den frühen Tagen von UNIX übernommen wurde.
Anmeldung
ist die benutzerfreundlichere Option, mit einer anpassbaren Nachricht, die dem Benutzer angezeigt wird, der versucht, sich anzumelden, also würden Sie das theoretisch verwenden wollen; aber beide nologin
und false
wird das gleiche Endergebnis haben, wenn jemand keine Shell hat und sich nicht per SSH einloggen kann.