apacheユーザーでログインする

プログラムの動作確認でapacheユーザーになる必要があったのでその時のメモ。

確認

suコマンドでapacheユーザーに切り替えれるか試してみます。

[root@hostname /]#
su - apache
This account is currently not available.

「利用できない」とメッセージが表示される。

次に、apacheユーザーのログイン時の処理を確認してみます。

[root@hostname /]#
grep apache /etc/passwd
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin

passwdファイルは、以下のように構成されています。

apache   :x        :48        :48       :Apache :/usr/share/httpd:/sbin/nologin
ユーザー名:パスワード:ユーザーID:グループID:コメント:ホームディレクトリ:ログインシェル

apacheユーザーでのログインは、「/sbin/nologin」と記載されており、ログインは出来ないようです。

対応

suコマンドに「-s」オプションを指定すると、ユーザー切り替え時に使用するシェルを指定することが出来ます。これを利用してログインシェルを一時的に「/sbin/nologin」シェルからbashシェルへ変更してログインを試みます。

[root@hostname /]#
su -s /bin/bash apache
bash-4.2$ 

プロンプトの表示が「bash-4.2$」に変わりました。

apacheユーザーに切り替わったのかを確認するためにユーザー情報を確認します。

bash-4.2$ 
id
uid=48(apache) gid=48(apache) groups=48(apache)

これでログアウトするまでは、apacheユーザーで作業が出来そうです。