Re: cryptage password ds script shell
Le dim 21/07/2002 à 16:22, Eric Leclercq a écrit :
> Autant utiliser 'mkpasswd' (dans le package 'whois') qui est
> un «Overfeatured front end to crypt(3)» :)
J'utilise ce script pour créer des utilisateurs :
8<-------------------------------------------------------------------
#! /bin/sh
# 2001-11 CHiPs
# créer les utilisateurs à partir d'un fichier
# ne pouvait malheureusement pas mettre les mots de passe
# car le passwd de la potato ne comprend pas l'option --stdin
# (corrigé avec l'utilisation de chpasswd)
# ne contient pas les groupes auxquels appartiennent les utilisateurs
# le fichier d'entrée est sous la forme :
# login pass alias mail gecos
# toto titi tata u@d.tld Toto Larico
# mettre - pour l'alias de mail (surnom) s'il n'y en a pas
# pour mettre dans /etc/aliases
echo "# alias utilisateurs" > alias.txt
# pour créer effectivement les comptes
echo "#! /bin/sh" > users.sh
# pour mettre en place les .forward
echo "#! /bin/sh" > forwards.sh
# pour affecter les mots de passe automatiquement
rm -f passwd.txt
touch passwd.txt
chmod 600 passwd.txt
while read login pass alias mail gecos
do
echo "" >> users.sh
echo $login,$pass,$alias,$mail,$name
echo adduser --disabled-password --gecos \"$gecos\" $login >> users.sh
# ne fonctionne pas, il faudrait pouvoir utiliser passwd --stdin
#echo cat pass/$login | passwd $login
echo $login:$pass >> passwd.txt
echo su - $login -c \"echo $mail \> ~$login/.forward\" >> forwards.sh
if expr $alias != '-' > /dev/null ;
then
echo il y a un alias pour $login qui est $alias.
echo $alias: $login >> alias.txt
fi
done
echo "" >> users.sh
echo "chpasswd < passwd.txt" >> users.sh
8<-------------------------------------------------------------------
Ce qui est intéressant, c'est :
le « --disabled-password » pour créer le compte sans possibilité de
login au départ,
la commande chpasswd qui évite que le mot de passe se balade en clair en
tant qu'argument de ligne de commande et qui crypte la chose comme il
faut... Pour ne créer qu'un utilisateur à la fois, on doit pouvoir faire
un truc du style « echo 'login:passwd' | chpasswd ».
C'est fait sur une bonne vieille patate et « chpasswd » vient du paquet
« passwd » qui fait partie de la section « base », donc il n'est guère
facile de ne pas en disposer !
Autrement, avec Woody, peut-être que « passwd » comprend l'option qui va
bien : « --stdin » ?
Hop !
--
Christophe «CHiPs» PETIT <chips@chips.fr.eu.org> http://chips.free.fr/
Linux-Nantes: partagez votre savoir http://www.linux-nantes.fr.eu.org/
Debian: When Code Matters More Than Commercials http://www.debian.org/
[E=mc2 Albert Enstein.]
--
To UNSUBSCRIBE, email to debian-user-french-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Reply to: