[Linux]suできないユーザーに切り替える方法

linux_logo

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

apacheなどユーザー変更できないユーザーへの切り替え

サーバーを運用しているとユーザーを切り替えて作業を行うときが多くあります。そのとき apache ユーザーをはじめ、www-data、postfix など通常の「su」コマンドでユーザー変更できないユーザーを存在します。

今回はsuできないユーザーに切り替える方法を確認してみます。

 

ユーザーを切り替える方法

結論から先に記載すると

su -s /bin/bash (切り替えたいユーザー)

で強制的にユーザーを切り替えることができます。

apacheユーザーに切り替えた実行例

もしユーザーの切り替えが上手くいかないときは、下記のユーザーを切り替えることができない原因をご確認の上、実行するコマンドを調整してください。

 

ユーザーを切り替えられない原因

まずは su コマンドを通常で実行してみます。

エラーを見る限り、「このアカウントは利用できません」とのことです。

そこでユーザーのログイン方法を記載しているファイル「/etc/passwd」の中を確認してみると原因が分かります。

su でユーザーを切り替えることができない理由は「/usr/sbin/nologin」と、該当のアカウントでログインできない設定がされているためです。このときは先ほど見た「This account is currently not available.」が表示されます。

 

ちなみに root ユーザーは「/bin/bash」でログインできるいうことです。

 

上記の理由から

su -s /bin/bash (切り替えたいユーザー)

を実行することにより、root ユーザーと同じログイン形式で apache に切り替える…という意味になります。
※root ユーザーのログイン形式が「/bin/bash」ではなく「/usr/bin/bash」などの異なる記述であれば、ご自身の環境に合わせた設定が必要になります。