[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux] commande Linux



Alexandre Dulaunoy a écrit :
> perm=`ls -l $1 | sed "
> s/^.\(.\{9\}\).*/\1/
> s/\(..[sS]..[sS]..[^tT]\)/6\1/
...
> s/rw-/6/g; s/rwx/7/g; s/---/0/g"`
> Voila un super alias qui fait cela.

Oufti. Alex, ça va ? :)

Bon, en Perl, c'est un chouya plus court (et surtout
plus simple à comprendre, pour une fois, avec Perl... ;)):

perm=`perl -e '$x=(stat("'$1'"))[2];printf "%.6o\n",$x'`

Note que là, tu as aussi le flag pour fichier normal,
répertoire, etc..., p.ex.:
- sur un répertoire: 040775
- sur un fichier: 100644
- sur un éxécutable SUID: 104755

Si tu ne t'intéresses que pour les 4 derniers chiffres:

perm=`perl -e '$x=(stat("'$1'"))[2];printf "%.4o\n",$x&07777'`

- sur un éxécutable SUID: 4755
- sur un fichier normal: 0644
- sur un répertoire: 0755

Si tu veux juste voir les rwx et pas suid/guid/sticky,
remplace le masque 07777 par 0777 et .4o par .3o:

perm=`perl -e '$x=(stat("'$1'"))[2];printf "%.3o\n",$x&07777'`

- éxécutable SUID: 755
- éxécutable normal: 755
- fichier normal: 644

Voilà ;-)

--
  -o) / Pascal Bleser                   ATOS Origin|
  /\\ \ e-Business Platform         Aachen, Germany|
 _\_v  \<guru@linuxbe.org> <pbleser@atosorigin.com>|
---------------------------------------------------|
rm -rf /bin/laden || cat usa >/dev/null            :
---------------------------------------------------'

[ Soyez précis dans vos sujets svp afin de déterminer directement  ]
[ le type de demande...                                            ]
[ Pour vous (dés)inscrire, aller sur http://unixtech.be/ml.php     ]
[ Archives de la mailing list: http://archives.unixtech.be/linux/  ]
[ http://unixtech.be              Contact: listmaster@unixtech.be  ]