J'essaye de faire un scripts base sur celui ci.
L'idee est de permettre la commande suivantes :
pwgen [length] [-aA0]
length la longueur du mot de passe
-a utiliser des minuscules
-A utiliser des majuscules
-0 utiliser des chiffres
Mon code est le suivant :
#!/bin/bash
# http://www.commentcamarche.net/forum/affich 2335882 shell generer une chaine aleatoire
syntax="`basename $0` [length] [-aA0]\n length password length"
# Read parameters
while [ $# -gt 0 ]; do
case "$1" in
*[0-9])
[ $l ] && (echo -e $syntax; exit 1)
l=$1
;;
-[aA0])
;;
*)
echo -e $syntax; exit 1
;;
esac
shift
done
# Set default
[ $l ] || l=8
[ $M ] || M="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
while [ "${n:=1}" -le "$l" ]
do pass="$pass${M:$(($RANDOM%${#M})):1}"
let n+=1
done
echo "$pass"
Les problemes sont les suivants :
1) Pourquoi mes doubles espaces sont supprimes dans la variable syntax
2) *[0-9] reconnait les nombres mais aussi 3r5
Quelle syntaxe utiliser pour capter uniquement les combinaisons de chiffres
3) [aA0] reconnait a, A et 0 mais pas aA, A0, etc...
Quelle syntaxe utiliser pour capter toutes les combinaisons possibles de a, A et 0
Merci d'avoir presente ce bout de code qui me pernet d'en decouvrir toujours plus sur les scripts
Santiago
Ben te voilà "guru" maintenant ;-))
Sinon, sous Mndriva le "mkpasswd" installé n'est pas du tout le même que sous Debian, la preuve :Il date de 1994 :et ne gère pas le "--hash=" ni le "salt"...
;-\
Sinon j'ai trouvé ça sur le Net (en Perl) : http://www.ajs.com/~ajs/mkpasswd.html
:-))
donc j'avais raison de demander reveiller les Maîtres
lami20j