.Bashrc рута не выполняется на sudo -i

11

На одном из моих серверов Ubuntu 11.10, когда я использую, sudo -iчтобы стать пользователем root, root .bashrc не выполняется. На всех других серверах, чьи соответствующие конфигурации идентичны, насколько я знаю, он выполняется правильно.

Вот что я проверил:

  • .bashrc существует в / root, принадлежит root: root, permissions 644
  • / и т.д. / профиль и /etc/bash.bashrc которые выполняются
  • Оболочка root установлена ​​на "/ bin / bash"
  • Я могу выполнить .bashrc с source .bashrc, после чего все нормально для этой сессии.
  • Я также могу напечатать, bashчтобы выполнить bash вручную после того, как я получил права root, после чего выполняется .bashrc
  • ps подтверждает, что запущенная оболочка для моей учетной записи root - bash.

Что-нибудь еще, чтобы проверить?

Майк Скотт
источник

Ответы:

10

Вы должны посмотреть на наличие и содержание файла /root/.profile.

Файл инициализации ~/.bashrcне получен в оболочках входа в систему: в Ubuntu он получен из~/.profile

Кроме того, файл /root/.profileне копируется /etc/skel/как для других пользователей, вместо этого он копируется /usr/share/base-files/dot.profileво время установки пакета base-files.

enzotib
источник
3

Есть еще одна ситуация, о которой вы должны помнить, которая произошла в моем случае.

Если вы хотите создать .bash_profileфайл, то этот файл берет на себя ответственность за загрузку / выполнение .bashrcили .profile.

Когда вы открываете свой терминал и используете его, "sudo -i"и вам вдруг не хватает некоторых псевдонимов команд, раскраски списка файлов и т. Д., Затем дважды проверьте, присутствует ли этот файл в вашем домашнем каталоге, затем переименуйте его и снова откройте консоль. Это должно это исправить.

Павел Барчик
источник