システムユーザは必ずしも/sbin/nologinにしない方が良い

表題の通り。

■ 環境

  • Linux

■ きっかけ

Dockerfileを書いて、buildして、いざ起動しようとしたところ下記メッセージで起動できず。

This account is currently not available.

■ 起動ユーザ

このDockerコンテナに入れたスクリプトの中で、システムユーザとして作成したユーザにsuしてコマンドを叩こうとしている箇所があったので、どうやらそれが原因のようである。

This account is currently not available.でsuで別ユーザに変更できない時
http://blog.mizoshiri.com/archives/214

なるほどね。サービスを起動するだけのユーザだからシステムユーザにしても良いかと思い、下記のようにユーザを作成していたのだが、これがよろしくないようである。

$ groupadd -r withsin
$ useradd -r -g withsin -s /sbin/nologin withsin

httpdのように設定ファイルに書くだけで良いとかでなく、su等を利用してユーザ指定で起動する場合にはnologinは指定しない方が良いようだ。

勉強になった。

以上。

■ 関連