Il root .bashrc non viene eseguito su sudo -i


11

Su uno dei miei server Ubuntu 11.10, quando uso sudo -iper diventare l'utente root, il .bashrc di root non viene eseguito. Su tutti gli altri server, le cui configurazioni pertinenti sono identiche per quanto ne so, viene eseguito correttamente.

Ecco cosa ho controllato:

  • .bashrc esiste in / root, di proprietà di root: root, permessi 644
  • / etc / profile e /etc/bash.bashrc sono in esecuzione
  • la shell di root è impostata su "/ bin / bash"
  • Posso eseguire .bashrc con source .bashrc, dopo di che tutto è normale per quella sessione.
  • Posso anche digitare bashper eseguire manualmente bash dopo che ho eseguito il root su root, e quindi .bashrc viene eseguito
  • ps conferma che la shell in esecuzione per il mio login di root è bash.

Qualcos'altro da controllare?

Risposte:


10

Dovresti guardare la presenza e il contenuto del file /root/.profile.

Il file init ~/.bashrcnon proviene da shell di login: su Ubuntu è di provenienza~/.profile

Inoltre, il file /root/.profilenon viene copiato /etc/skel/come per gli altri utenti, ma viene invece copiato /usr/share/base-files/dot.profiledurante l'installazione del pacchetto base-files.


3

C'è un'altra situazione che dovresti tenere a mente, che è accaduta nel mio caso.

Se si desidera creare un .bash_profilefile, questo file si assume la responsabilità di caricare / eseguire .bashrco .profile.

Quando apri il tuo terminale e lo usi "sudo -i"e all'improvviso manchi qualche alias di comando, colorazione dell'elenco dei file, ecc., Quindi ricontrolla se questo file è presente nella tua home directory, quindi rinominalo e riapri nuovamente la console. Questo dovrebbe risolverlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.