場合によっては、システムでの認証のためにパスワード付きのユーザー アカウントが必要になることがありますが、そのユーザー名の対話型シェルは必要ありません。これにより、そのパスワードを使用してシステムにログインするためにユーザー アカウントが使用されるのを防ぐことができます。これらのシナリオでは、ユーザーのシェルを /sbin/nologin に設定できます または /bin/false .ユーザーがシステムにログインしようとすると、nologin シェルがユーザーの接続を閉じます。
このような状況の例としては、メール サーバーが考えられます。この場合、メール クライアントで認証してメールを取得するには、メールとパスワードを保存するためにユーザー アカウントが必要です。ただし、/sbin/nologin シェルが割り当てられている場合、ユーザーはそのアカウントを使用してシステムにログインできません。
どちらのコマンドもゼロ以外を返すため、それほど違いはありません。元々 /bin/false は、常に非ゼロを返すため、一般的なコマンド用に作成されました。そして、/sbin/nologin を作成する前に、nologin ユーザーのシェルとして使用されているようです。
一方、nologin ユーザーのシェルには /sbin/nologin が作成されており、/etc/nologin.txt にメッセージを出力する機能があります。 . /etc/shells に含まれているため、nologin ユーザーのシェルには /sbin/nologin を使用することをお勧めします。 .
$ 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