技術的には、どちらの方法もpam
シェルをチェックするように設定されていないpam_shells
限り、シェルにない場合は実際にログインすることを防ぎません。私のシステムではサイズも異なるので、実際に何かをすることが疑われます。では、違いは何ですか?なぜそれらはすべて存在するのですか?なぜ他のものを使うべきですか?
-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
ベストアンサー1
シェルに設定すると、/sbin/nologin
そのシェルを使用しているユーザーがログインすると、「このアカウントは現在利用できません」という丁寧なメッセージが表示されます。メッセージはファイルによって変わる場合があります/etc/nologin.txt
。
/bin/false
呼び出し時にfalseを返すとすぐにシャットダウンバイナリなので、シェルを使用してfalse
いる人がログインすると、シャットダウンfalse
時にすぐにログアウトされます。/bin/true
ログインを許可しないのと同じ効果を持つようにシェルを設定することは、ユーザーにシェルがないという概念をよりよく伝えるため、false
慣例として使用できます。true
マニュアルページを見ると、nologin
4.4 BSD(1990年代初頭)で生成されたとされており、生成されてからfalse
長い時間が経ちました。シェルを使用することは、false
UNIXの初期の残りの習慣でもあります。
nologin
よりユーザーフレンドリーなオプションでログインしようとしているユーザーにカスタマイズ可能なメッセージを提供するので、理論的にはそれを使用したいが、両方とも同じ最終結果が得られますnologin
。false
SSHに入ることはできません。