Le .bashrc de root ne s'exécute pas sur sudo -i

11

Sur l'un de mes serveurs Ubuntu 11.10, lorsque j'utilise sudo -ipour devenir l'utilisateur root, le .bashrc de root n'est pas exécuté. Sur tous les autres serveurs, dont les configurations pertinentes sont identiques pour autant que je sache, il est exécuté correctement.

Voici ce que j'ai vérifié:

  • .bashrc existe dans / root, appartenant à root: root, permissions 644
  • / etc / profile et /etc/bash.bashrc sont en cours d'exécution
  • le shell de root est défini sur "/ bin / bash"
  • Je peux exécuter .bashrc avec source .bashrc, après quoi tout est normal pour cette session.
  • Je peux également taper bashpour exécuter manuellement bash après avoir créé sudo sur root, et .bashrc est ensuite exécuté
  • ps confirme que le shell en cours d'exécution pour ma connexion root est bash.

Autre chose à vérifier?

Mike Scott
la source

Réponses:

10

Vous devez regarder la présence et le contenu du fichier /root/.profile.

Le fichier init ~/.bashrcne provient pas des shells de connexion: sur Ubuntu, il provient de~/.profile

De plus, le fichier /root/.profilen'est pas copié /etc/skel/comme pour les autres utilisateurs, il est plutôt copié depuis /usr/share/base-files/dot.profilelors de l'installation du paquet base-files.

enzotib
la source
3

Il y a une situation supplémentaire que vous devez garder à l'esprit, qui s'est produite dans mon cas.

Si vous souhaitez créer un .bash_profilefichier, ce fichier assume la responsabilité de charger / exécuter .bashrcou .profile.

Lorsque vous ouvrez votre terminal et utilisez "sudo -i"et qu'il vous manque soudainement certains alias de commande, la coloration de la liste des fichiers, etc., vérifiez ensuite si ce fichier est présent dans votre répertoire personnel, puis renommez-le et rouvrez votre console. Cela devrait le réparer.

Pawel Barcik
la source