rootのバッシュプロファイルに間違えてexitと記載して保存してしまった

Linux

rootの.bash_profileは、サーバ心臓部と言っても過言ではなく、ログインできるかを司るような場所です。編集する際は、慎重に行う必要があります。

ここで、過去にrootのの.bash_profileの末に「exit」と記載したまま保存してしまったことがありました。この状態だと、rootにsuしてもすぐに一般ユーザーに戻されてしまうので、サーバの構築作業が行えなくなります。

この記事では、rootの.bash_profileを誤って編集してしまった際の対応方法について解説します。

rootの.bash_profileに「exit」と書いたらどうなってしまうか

結論ですが、rootの.bash_profileに「exit」と書いたまま保存すると、rootにスイッチできなくなります。

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

exit

正確に言うと、システム的にはスイッチしています。しかし、スイッチの際に.bash_profileを読み込むと「exit」があるので、すぐに戻ってしまうという流れです。

具体的には下記のような挙動になります。

[centos02@localhost ~]$ su -
パスワード:
最終ログイン: 2026/07/13 (月) 23:05:13 JST 端末:pts/0
[centos02@localhost ~]$

すでに稼働中のシステムで参照のみであれば、rootにスイッチしなくても問題ないことが多いでしょう。しかし、サーバの環境構築中の場合にやってしまった場合、作業が進められなくなってしまうこともあるので、注意が必要です。

対応方法

sudoが実行できるユーザにスイッチ後、sudoで.bash_profileを開いて「exit」を削除することで解決はできます。

[centos02@localhost ~]$ sudo vi /root/.bash_profile
[sudo] centos02 のパスワード:
[centos02@localhost ~]$
[centos02@localhost ~]$
[centos02@localhost ~]$ sudo cat /root/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
# exit
[centos02@localhost ~]$
[centos02@localhost ~]$ su -
パスワード:
最終ログイン: 2026/07/13 (月) 23:06:16 JST 端末:pts/0
[root@localhost ~]#

なお、もしsudoが実行できるユーザがサーバに存在していなかった場合、最悪リストアしか手段がない可能性があります。

解決策があったとしても、rootの.bash_profileを触る場合は慎重に行い、間違った記載をしないようにしましょう。

コメント

タイトルとURLをコピーしました