ルート権限でログインしてプロンプトを変更するにはどうすればいいですか?

ルート権限でログインしてプロンプトを変更するにはどうすればいいですか?

私は ubuntu-10.04 と bash を使用しています。ルートに入り、プロンプトを下線付きの赤い文字に変更してルートにいることを反映させたいです。bash プロンプトで次のように入力します。

$ sudo bash

その後、ルートに入りますが、プロンプトは変わりません。次のように/root/.bashrcなります:

RED="\[\033[0;31m\]"
UNDERLINE="\[\033[4m\]"
DEFAULT="\[\033[0m\]"
export PS1=$RED$UNDERLINE'\u@\h:\w\$'$DEFAULT' '

しかし、このファイルは読み込まれません。読み取るには、プロンプトで次のように入力する必要があります。

# . /root/.bashrc

これをやりたくありません。ルートに入ると/root/.bashrc自動的に実行されるように設定するにはどうすればよいですか?

答え1

  • まず、sudo rootコマンドは有効なのでしょうか? (sudo -sまたはsudo -i有効なはずです。)

  • 私は編集が好きです自分の .bashrcルートの代わりに、例えば、

    if (( $UID == 0 )); then
        PS1="$RED$UNDERLINE"
    else
        PS1="$GREEN"
    fi
    PS1="$PS1\u@\h:\w\$$DEFAULT "
    
  • sudo -iを使用すると、自分の rcfile ではなく、root の rcfile が読み込まれるようにすることができます。

答え2

sudo は、新しい環境変数ではなく、元のユーザーの環境変数を使用するように設定されているようです。

を設定するかenv_reset and env_keep options in /etc/sudoers、次のようにして環境変数をターゲット ユーザーの環境変数に明示的にリセットします-Hsudo -H -u root

関連情報