Re: Nom du shell courant

Top Page

Reply to this message
Author: Marc TERRIER
Date:  
To: stephane
CC: ML guilde
Subject: Re: Nom du shell courant
Selon Stephane Bonhomme <stephane@???>:

> Tiens c'est étrange sur mon linux (debian), csh connait $0
>
> Du coup j'ai fouillé un peu :
>
> waloo@citrouille:~$ which csh
> /bin/csh
> waloo@citrouille:~$ ls -l /bin/csh
> lrwxrwxrwx 1 root root 21 mar 14 2008 /bin/csh -> /etc/alternatives/csh
> waloo@citrouille:~$ ls -l /etc/alternatives/csh
> lrwxrwxrwx 1 root root 9 mar 14 2008 /etc/alternatives/csh -> /bin/tcsh
> waloo@citrouille:~$ ls -l /bin/tcsh
> lrwxrwxrwx 1 root root 13 mar 14 2008 /bin/tcsh -> /usr/bin/tcsh
> waloo@citrouille:~$ ls -l /usr/bin/tcsh
> -rwxr-xr-x 1 root root 348224 jui 3 2006 /usr/bin/tcsh
>
> tiens tiens en fait csh est un tcsh qui se fait passer pour csh... mais
> du coup :
>
>
> waloo@citrouille:~$ csh
> citrouille:~> echo $0
> csh
>
> et :
> citrouille:~> ps -e | grep $$ | nawk '{ print $4; }'
> csh
>
> se trompent tout autant !!! j'utilise tcsh pas csh !


Dans une situation piège comme celle-ci où un shell se fait passer pour un autre
à grands coups de liens symboliques, je ne suis pas très surpris que même ps -e
| grep $$ | nawk '{ print $4; }' se fasse avoir. Mais ta remarque est

intéressante, Steph, et montre que si on veut vraiment être sûr, il faut
'remonter' les liens symboliques jusqu'à tomber sur un binaire.

Sous Solaris ( 7 et 10, en l'occurrence ), csh et tcsh sont tous deux des
binaires, pas des liens symboliques, donc je n'ai pas le problème. En revanche,
dans un cas comme dans l'autre, csh couine sur 'echo $0'. Et sous tcsh, 'echo
$0' renvoie bien 'tcsh'.

--
Marc
Mail : marc.terrier [at] free.fr
Site : http://marc.terrier.free.fr