como preservar o PATH de exportação?

0

Como posso fazer ssh admin@nas command funcionar se command estiver em /opt/bin ?

No meu arquivo NAS QNAP /root/.ssh/rc :

echo "old path is $PATH"
export PATH=/opt/bin:/opt/sbin:$PATH
echo "new path is $PATH"

na minha máquina:

~$ ssh admin@nas 'echo $PATH'

retorna

old path is /usr/bin:/bin:/usr/sbin:/sbin
new path is /opt/bin:/opt/sbin:/usr/bin:/bin:/usr/sbin:/sbin
/usr/bin:/bin:/usr/sbin:/sbin

para que a variável de caminho não seja preservada. Como posso conseguir isso?

Editar: Como mencionei no meu comentário abaixo, o comando que estou tentando usar é git ou, mais específico, git-upload-pack e git-receive-pack e provavelmente alguns outros. Eu quero usá-los em diferentes locais e ocasiões e não quero me incomodar em configurar um git em cada máquina que eu uso ou ensinar ao meu IDE como se comunicar com meu NAS, mas sim ter meus padrões de conformidade NAS. Então eu percebi que tudo que eu preciso é definir o% correto$PATH

Editar II: O que eu tentei até agora foi também inserir o export PATH=... , bem como adicionar outro echo (para verificar se eles são executados) para ~/.bash_profile , to /etc/profile e ~/.bashrc . Aparentemente, nenhum deles é executado mesmo quando eu executo um comando não interativo como acima. Se eu faço ssh admin@nas todos eles são executados, mas isso não ajuda

    
por user2298896 19.04.2013 / 13:41

2 respostas

1

Se você estiver logado como administrador, ~/.bashrc não será usado, mas ~/.profile será. Então você pode adicionar isso ao .profile:

export PATH=\
/bin:\
/sbin:\
/opt/bin:\  #<--- HERE IT IS NOW
/usr/bin:\
/usr/sbin:\
/usr/bin/X11:\
/usr/local/bin

E o PATH será carregado assim quando você fizer login como administrador. O que fiz no meu nas é que adicionei isso ao .bashrc e alterei o .profile para ter apenas 1 linha:

source ~/.bashrc

Então, quando você faz login como admin, você ainda tem SH configurado com .bashrc.

EDITAR: Eu agora entendo o que você quer fazer ...

Apenas crie links simbólicos para esses dois binários dentro de / usr / bin. Por exemplo:

cd /usr/bin && ln -s /opt/bin/git-upload-pack 
    
por 26.01.2018 / 13:53
0

Você pode inserir real address do comando em vez do comando em ssh admin @ nas command . Como abaixo:

ssh admin@nas /opt/bin/command-name

    
por 19.04.2013 / 13:46