/sbin/nologinと/bin/falseの違いは何ですか?

/sbin/nologinと/bin/falseの違いは何ですか?

技術的には、どちらの方法も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

マニュアルページを見ると、nologin4.4 BSD(1990年代初頭)で生成されたとされており、生成されてからfalse長い時間が経ちました。シェルを使用することは、falseUNIXの初期の残りの習慣でもあります。

nologinよりユーザーフレンドリーなオプションでログインしようとしているユーザーにカスタマイズ可能なメッセージを提供するので、理論的にはそれを使用したいが、両方とも同じ最終結果が得られますnologinfalseSSHに入ることはできません。

おすすめ記事