Linuxでログイン出来ないユーザを作成したいことがあります。
例えば WEBサーバ apache で使われるユーザ apache は、ログインする必要がありません。
ユーザがログインできないようにする為に、ユーザのログインシェルに /bin/false や /sbin/nologin を指定します。
ログインシェルは次のコマンドで変更できます。
usermod -s ログインシェル ユーザ名
ここでログインシェルに指定する /bin/false と /sbin/nologin に違いがあるのか、ソースコードを見て調べました。
違いは次の通りです。
/bin/false
何もせずに終了します。
/sbin/nologin
/etc/nologin.txt の内容を表示した後、終了します。
このように、/bin/false と /sbin/nologin は、/etc/nologin.txt の内容を表示するか、しないかの違いだけでした。
ログインできないようにする目的では、特に /etc/nologin.txt の内容を表示する必要も無いので、通常は /bin/false を指定すればいいと思います。
なお、参考までにチェックしたソースコードは、/bin/false では、Coreutils の false.c , true.c 、/sbin/nologin では、Util-linux の pathnames.h , nologin.c です。
コメント