Как сохранить пользовательский PS1 в режиме суперпользователя?

Проблема заключается в следующем:

Я установил пользовательский PS1 в свой .bashrc, но он меняет значение по умолчанию, когда я вхожу в режим суперпользователя.

Я ожидал:

 ╓[coffee]─[Linux-Tower]─[2014-11-05, 23:41]─[~] ╙[$]-[sudo su [sudo] password for coffee: ╓[root]─[Linux-Tower]─[2014-11-05, 23:41]─[~] ╙[#]-[ 

Что я имею:

 ╓[coffee]─[Linux-Tower]─[2014-11-05, 23:41]─[~] ╙[$]-[sudo su [sudo] password for coffee: root@Linux-Tower:/home# 

Итак, как мне установить PS1 чтобы быть тем, что используется при запуске с правами root?

One Solution collect form web for “Как сохранить пользовательский PS1 в режиме суперпользователя?”

Не используйте sudo su . su бессмысленно, поскольку вы уже стали root, используя sudo .

sudo -Es этого используйте sudo -Es . Это сохранит среду. Однако есть улов. Поскольку оболочка запускается в интерактивном режиме, она отправляется в исходный ~/.bashrc , который предположительно перезагружает $PS1 . Однако $HOME сохранен, поэтому bash собирается использовать ваш домашний каталог при поиске .bashrc , а не в корневом доме. Таким образом, ваш профиль будет использоваться.

Однако у этого есть одна возможная проблема. Как уже упоминалось, $HOME устанавливается в дом вашего пользователя, поэтому любые команды, которые создают файлы в $HOME/ будут создавать их как root. Хотя это не имеет значения, если файлы уже существуют и просто перезаписаны.

Если вы действительно хотите сохранить $PS1 , вы можете сделать это, но это не так чисто:

 sudo -E bash --norc 

или

 sudo PS1="$PS1" bash --norc 

Основным недостатком этого является то, что этот метод явно использует bash в качестве оболочки, а --norc является параметром bash. Вышеупомянутый метод sudo -Es будет использовать любое значение, установленное для $SHELL , что имеет значение, если вы не используете bash .
Также при использовании метода -E вам необходимо убедиться, что $PS1 экспортирован.

  • Когда su и sudo используют разные пароли?
  • sudo зависает при запуске на удаленном хосте поверх ssh в скрипте без tty (-t)
  • sudo: невозможно инициализировать PAM: нет такого файла или каталога
  • как изменить разрешение файла / proc / self / pagemap.?
  • Как эта команда делает пользователя sudoer?
  • LDAP Sudoers с AD & SSSD (возвращает только основную группу)
  • как удаленно выполнять сценарий оболочки с повышенными привилегиями
  • В команде `sudo find`, как я могу убедиться, что команда` -exec` запускается как обычный пользователь?
  • ssh с sudo не запускает службы
  • Может ли программа, выполняемая sudo-сервером NOPASSWD, использовать sudo для получения доступа root?
  • Неправильное разрешение на папку / etc
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.