[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