.Bashrc roota nie działa na sudo -i

11

Na jednym z moich serwerów Ubuntu 11.10, kiedy używam, sudo -iaby zostać użytkownikiem root, plik rootbashrc nie jest wykonywany. Na wszystkich innych serwerach, których odpowiednie konfiguracje są identyczne, o ile mi wiadomo, są wykonywane poprawnie.

Oto co sprawdziłem:

  • .bashrc istnieje w katalogu / root, którego właścicielem jest root: root, uprawnienia 644
  • / etc / profile i /etc/bash.bashrc wykonywane
  • Powłoka root jest ustawiona na „/ bin / bash”
  • Mogę wykonać .bashrc source .bashrc, po czym wszystko jest normalne dla tej sesji.
  • Mogę również pisać bashręcznie, aby wykonać bash po sudo do rootowania, a następnie .bashrc jest wykonywany
  • ps potwierdza, że ​​działającą powłoką dla mojego loginu root jest bash.

Masz jeszcze coś do sprawdzenia?

Mike Scott
źródło

Odpowiedzi:

10

Powinieneś spojrzeć na obecność i zawartość pliku /root/.profile.

Plik inicjujący ~/.bashrcnie jest pozyskiwany z powłok logowania: w Ubuntu jest pozyskiwany z~/.profile

Ponadto plik /root/.profilenie jest kopiowany /etc/skel/jak w przypadku innych użytkowników, zamiast tego jest kopiowany /usr/share/base-files/dot.profilepodczas instalacji pakietu base-files.

enzotib
źródło
3

Jest jedna dodatkowa sytuacja, o której należy pamiętać, która wydarzyła się w moim przypadku.

Jeśli chcesz utworzyć .bash_profileplik, plik ten przejmuje odpowiedzialność za ładowanie / wykonanie .bashrclub .profile.

Kiedy otworzysz terminal i użyjesz "sudo -i"i nagle brakuje Ci aliasów poleceń, kolorowania listy plików itp., Sprawdź dokładnie, czy plik ten znajduje się w twoim katalogu domowym, a następnie zmień jego nazwę i ponownie otwórz konsolę. To powinno to naprawić.

Paweł Barcik
źródło