.bashrc do Root não está sendo executado no sudo -i

10

Em um dos meus servidores Ubuntu 11.10, quando eu uso sudo -i para se tornar o usuário root, o .bashrc do root não está sendo executado. Em todos os outros servidores, cujas configurações relevantes são idênticas, tanto quanto eu sei, está sendo executado corretamente.

Veja o que eu verifiquei:

  • .bashrc existe em / root, propriedade de root: root, permissões 644
  • / etc / profile e /etc/bash.bashrc estão sendo executados
  • o shell do root está definido como "/ bin / bash"
  • Eu posso executar .bashrc com source .bashrc , após o que tudo é normal para essa sessão.
  • Eu também posso digitar bash para executar o bash manualmente depois que eu sudoed to root, e o .bashrc é então executado
  • ps confirma que o shell em execução para o meu login root é bash.

Mais alguma coisa para verificar?

    
por Mike Scott 31.01.2012 / 11:16

2 respostas

8

Você deve verificar a presença e o conteúdo do arquivo /root/.profile .

O arquivo init ~/.bashrc não é originado em shells de login: no Ubuntu ele é originado de ~/.profile

Além disso, o arquivo /root/.profile não é copiado de /etc/skel/ para outros usuários, mas copiado de /usr/share/base-files/dot.profile durante a instalação do pacote base-files .

    
por enzotib 31.01.2012 / 12:22
3

Há uma situação adicional que você deve ter em mente, o que aconteceu no meu caso.

Se você criar o arquivo .bash_profile , esse arquivo estará assumindo a responsabilidade de carregar / executar .bashrc ou .profile .

Quando você abrir seu terminal e usar "sudo -i" e, de repente, estiver faltando alguns aliases de comando, lista de arquivos, etc., verifique se esse arquivo está presente em seu diretório pessoal, renomeie-o e reabra seu console novamente. Isso deve resolver isso.

    
por Pawel Barcik 05.02.2012 / 22:42