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 ]