Por que o SSH não está invocando .bash_profile?

1

Meu entendimento era de que .bash_profile sempre seria invocado por meio de um login SSH.

No entanto, não vejo as várias configurações ativadas, a menos que eu faça o seguinte:

ssh $host "source ~/.bash_profile ; echo $PATH "

.:/mnt/spark-1.4.1/bin:/mnt/spark-1.4.1/sbin:/mnt/scala-2.11.2/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Quando eu simplesmente faço:

ssh $host "echo $PATH "

As informações do PATH são apenas o padrão

 /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

O usuário é root e o shell padrão é o bash.

$ ll /bin/sh
lrwxrwxrwx 1 root root 4 Aug  6 19:54 /bin/sh -> bash

Atualizar shell do root é bash

grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
    
por javadba 07.08.2015 / 03:13

2 respostas

2

Você tem um conjunto de arquivos .bashrc ? Pode estar danificado ou corrompido ou tem algo que faz com que o processamento de .bashrc seja bloqueado e falhe. E, como resultado, não chega ao ponto em que pode digerir / processar de forma limpa .bash_profile .

Conforme mostrado neste site , .bashrc é carregado antes de .bash_profile :

+----------------+-----------+-----------+------+
|                |Interactive|Interactive|Script|
|                |login      |non-login  |      |
+----------------+-----------+-----------+------+
|/etc/profile    |   A       |           |      |
+----------------+-----------+-----------+------+
|/etc/bash.bashrc|           |    A      |      |
+----------------+-----------+-----------+------+
|~/.bashrc       |           |    B      |      |
+----------------+-----------+-----------+------+
|~/.bash_profile |   B1      |           |      |
+----------------+-----------+-----------+------+
|~/.bash_login   |   B2      |           |      |
+----------------+-----------+-----------+------+
|~/.profile      |   B3      |           |      |
+----------------+-----------+-----------+------+
|BASH_ENV        |           |           |  A   |
+----------------+-----------+-----------+------+
|                |           |           |      |
+----------------+-----------+-----------+------+
|                |           |           |      |
+----------------+-----------+-----------+------+
|~/.bash_logout  |    C      |           |      |
+----------------+-----------+-----------+------+

Eu recomendaria verificar que .bashrc e talvez até mesmo renomeá-lo temporariamente como .bashrc_off para desativá-lo para testar a teoria antes de depurar mais.

    
por 07.08.2015 / 03:20
0

Qual foi a última parte sobre /bin/sh ? Se o shell padrão do root estiver configurado como /bin/sh , então bash será chamado no modo de compatibilidade do shell Bourne do POSIX, no qual os scripts de inicialização específicos de bash não serão executados.

    
por 07.08.2015 / 08:02

Tags