Root's .bashrc не выполняется на sudo -i

10

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

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

  • .bashrc существует в / root, принадлежит root: root, permissions 644
  • / etc / profile и /etc/bash.bashrc выполняются
  • Корневая оболочка имеет значение «/ bin / bash»
  • Я могу выполнить .bashrc с source .bashrc , после чего все нормально для этого сеанса.
  • Я также могу набрать bash , чтобы выполнить bash вручную после того, как я получил sudoed для root, а затем будет запущен .bashrc
  • ps подтверждает, что запущенная оболочка для моего корневого входа - bash.

Что еще нужно проверить?

    
задан Mike Scott 31.01.2012 в 10:16
источник

2 ответа

8

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

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

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

    
ответ дан enzotib 31.01.2012 в 11:22
источник
3

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

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

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

    
ответ дан Pawel Barcik 05.02.2012 в 21:42