[gull] déplacer sa session bash

Daniel Cordey dc at mjt.ch
Wed Feb 24 14:39:51 CET 2016


On 24. 02. 16 13:39, Cédric Briner wrote:

> Mais lorsque je fais ça sur du root utilisant tsch sur une machine solaris, je me retrouve avec:
> function test(){ if [[ -d /root ]] ; then echo a_root ; else echo no_root; fi; }; ssh dropzone2 "/usr/bin/bash -c '$(declare -f test) ; test'"
> '


> Je me retrouve avec le code bash interprété par tsch.

Hihi... encore Solaris avec son attachement au csh et ses dérivés...

> Ma question est double:
> 1) pourquoi est-ce que le code est interprété par tsch

ssh lance une session avec le shell de l'utilisateur. Tu peux tester sur 
ton système en faisant :

tcsh -c "/usr/bin/bash -c '$(declare -f test)..."

En fait, le tcsh étant un dérivé de csh, attends-toi à ce que plein de 
choses ne fonctionnent pas comme avec tous les autres shell comme sh, 
ksh et bash. Cela vient sans doute des différences dans le parsing des 
variables/string entre sh et csh...

Mes conseils :

- As-tu vraiment besoin de tourner ça en root... faire du ssh en root me 
paraît très, très, très discutable.


> 2) comment faire au mieux pour faire de la session portable dans le cas ou l'utilisateur sur la machine cible n'utilise pas bash

- Si tu n'as pas le choix, crée un autre utilisateur avec 'sh', mais 
toujours avec le UID de 0... ainsi tu peux te connecter sur celui-ci en 
utilisant un autre shell, tout en ayant les mêmes droits :-)

Tu as peut-être au moins /bin/ksh ou /bin/sh... non ?

dc


More information about the gull mailing list