技術メモのかけら

内容はもとより調べたことすら忘れてしまうので個人的なメモです。とにかく短く、結論だけ書いていきます。

ログインシェルが/sbin/nologinのユーザでコマンドを実行したい

通常ログインする必要がないユーザは、セキュリティのためログインシェルに/sbin/nologinが指定されている。

# grep apache /etc/passwd
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin

su しようとするとエラーになってしまいます。

# su - apache
Last login: Sat Dec 15 12:58:36 UTC 2018 on pts/0
This account is currently not available.

そんな場合は オプションに --shell=シェルへのパスを指定することで su できる。意外と知らなかった。

su apache --shell=/bin/sh -c bundle install