/bin/false と /sbin/nologin の違いをソースコードを見て調べました

ALL
スポンサーリンク

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 です。

コメント