3

Я использую 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 автоматически?

2 ответа2

2
  • Во-первых, является ли команда 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 чтобы сделать чтение корневых файлов вместо ваших.

1

Похоже, что sudo настроен на использование переменных среды исходных пользователей, а не новых.

Либо вы устанавливаете параметры env_reset and env_keep options in /etc/sudoers либо вы явно сбрасываете переменные окружения на переменные целевого пользователя с помощью -H: sudo -H -u root

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .