
Я использую ubuntu-10.04 и bash. Я хочу войти в root и изменить приглашение на подчеркнутые красные символы, чтобы отразить, что я в root. В приглашении bash, если я введу:
$ sudo bash
затем я захожу в root, однако мой запрос не меняется. В /root/.bashrc
у меня есть:
RED="\[\033[0;31m\]"
UNDERLINE="\[\033[4m\]"
DEFAULT="\[\033[0m\]"
export PS1=$RED$UNDERLINE'\u@\h:\w\$'$DEFAULT' '
Однако этот файл не читается. Чтобы его прочитать, мне нужно ввести в командной строке:
# . /root/.bashrc
чего я не хочу делать. Как мне настроить его так, чтобы при входе в root /root/.bashrc
он запускался автоматически?
решение1
Во-первых, является ли
sudo root
команда действительной? (sudo -s
илиsudo -i
была бы таковой.)Я предпочитаю редактировать свойсобственный
.bashrc
вместо root. Например, можно иметьif (( $UID == 0 )); then PS1="$RED$UNDERLINE" else PS1="$GREEN" fi PS1="$PS1\u@\h:\w\$$DEFAULT "
Вы можете использовать его
sudo -i
, чтобы заставить читать файлы конфигурации root вместо ваших.
решение2
Похоже, что sudo настроен на использование переменных среды исходного пользователя, а не новых.
Либо вы устанавливаете, env_reset and env_keep options in /etc/sudoers
либо явно сбрасываете переменные среды до значений целевого пользователя с помощью -H
:
sudo -H -u root