Roots .bashrc wird auf sudo -i nicht ausgeführt

11

Auf einem meiner Ubuntu 11.10-Server wird sudo -idie .bashrc-Datei von root nicht ausgeführt , wenn ich Root-Benutzer werde. Auf allen anderen Servern, deren relevante Konfigurationen meines Wissens identisch sind, wird es ordnungsgemäß ausgeführt.

Folgendes habe ich überprüft:

  • .bashrc ist in / root vorhanden und gehört root: root, Berechtigungen 644
  • / etc / profile und /etc/bash.bashrc werden ausgeführt
  • Die Shell von root ist auf "/ bin / bash" gesetzt.
  • Ich kann .bashrc mit ausführen source .bashrc, wonach für diese Sitzung alles normal ist.
  • Ich kann auch basheingeben, um bash manuell auszuführen, nachdem ich zu root sudoed habe, und .bashrc wird dann ausgeführt
  • ps bestätigt, dass die laufende Shell für mein Root-Login bash ist.

Sonst noch etwas zu überprüfen?

Mike Scott
quelle

Antworten:

10

Sie sollten sich das Vorhandensein und den Inhalt der Datei ansehen /root/.profile.

Die Init-Datei ~/.bashrcwird nicht in Login-Shells bezogen: Unter Ubuntu wird sie von bezogen~/.profile

Darüber hinaus wird die Datei /root/.profilenicht /etc/skel/wie bei anderen Benutzern kopiert, sondern /usr/share/base-files/dot.profilewährend der Installation des Pakets kopiert base-files.

Enzotib
quelle
3

Es gibt eine zusätzliche Situation, die Sie berücksichtigen sollten, die in meinem Fall passiert ist.

Wenn Sie eine .bash_profileDatei erstellen würden, übernimmt diese Datei die Verantwortung für das Laden / Ausführen von .bashrcoder .profile.

Wenn Sie Ihr Terminal öffnen und verwenden "sudo -i"und plötzlich einige Befehlsaliasnamen, Dateilistenfarben usw. fehlen, überprüfen Sie noch einmal, ob diese Datei in Ihrem Home-Verzeichnis vorhanden ist, benennen Sie sie um und öffnen Sie Ihre Konsole erneut. Dies sollte das Problem beheben.

Pawel Barcik
quelle