
私は 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
、次のようにして環境変数をターゲット ユーザーの環境変数に明示的にリセットします-H
。
sudo -H -u root