Root .bashrc tidak dijalankan pada sudo -i

11

Di salah satu server Ubuntu 11.10 saya, ketika saya gunakan sudo -iuntuk menjadi pengguna root, .bashrc root tidak dieksekusi. Di semua server lain, yang konfigurasinya relevan identik sejauh yang saya tahu, sedang dijalankan dengan benar.

Inilah yang saya periksa:

  • .bashrc ada di / root, dimiliki oleh root: root, izin 644
  • / etc / profile dan /etc/bash.bashrc yang sedang dieksekusi
  • shell root diatur ke "/ bin / bash"
  • Saya dapat menjalankan .bashrc dengan source .bashrc, setelah semuanya normal untuk sesi itu.
  • Saya juga bisa mengetik bashuntuk mengeksekusi bash secara manual setelah saya sudoed untuk melakukan root, dan .bashrc kemudian dieksekusi
  • ps mengonfirmasi bahwa shell yang berjalan untuk login root saya adalah bash.

Ada lagi yang perlu diperiksa?

Mike Scott
sumber

Jawaban:

10

Anda harus melihat keberadaan dan konten file /root/.profile.

File init ~/.bashrctidak bersumber dari shell login: di Ubuntu itu berasal dari~/.profile

Selain itu, file /root/.profiletidak disalin dari /etc/skel/untuk pengguna lain, melainkan disalin dari /usr/share/base-files/dot.profileselama instalasi paket base-files.

enzotib
sumber
3

Ada satu situasi tambahan yang harus Anda ingat, yang terjadi dalam kasus saya.

Jika Anda ingin membuat .bash_profilefile maka file ini mengambil alih tanggung jawab untuk memuat / mengeksekusi .bashrcatau .profile.

Ketika Anda membuka terminal dan menggunakan "sudo -i"dan tiba-tiba Anda kehilangan beberapa alias perintah, pewarnaan daftar file dll., Kemudian periksa kembali apakah file ini ada di direktori home Anda, kemudian ganti nama dan buka kembali konsol Anda lagi. Ini harus memperbaikinya.

Pawel Barcik
sumber