Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

cryptage password ds script shell

116 views
Skip to first unread message

BULLIER

unread,
Jul 21, 2002, 8:00:10 AM7/21/02
to
La question à 10 cents du dimanche après-midi...

Je souhaite, dans un script shell créer un compte user avec la cmd "adduser".
Pour créer le le mot de passe il faut utiliser l'option -p suivi du mdp deja
crypté.
Or je ne parviens pas à le faire fonctionner...
Ex: "# adduser -g mail -p password -s /bin/false -e 2002-12-01 -m user1"
comment remplacer "password" par sa valeur cryptée (j'ai essayé "-p
crypt(password, aZ)", mais ça n'a rien donné!).

Merci de votre aide et bonne fin de journée.

Eric.B


--
To UNSUBSCRIBE, email to debian-user-f...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Romain DEGEZ

unread,
Jul 21, 2002, 8:20:07 AM7/21/02
to
Le dim 21/07/2002 à 13:56, BULLIER a écrit :
> La question à 10 cents du dimanche après-midi...
>
> Je souhaite, dans un script shell créer un compte user avec la cmd "adduser".
> Pour créer le le mot de passe il faut utiliser l'option -p suivi du mdp deja
> crypté.
> Or je ne parviens pas à le faire fonctionner...
> Ex: "# adduser -g mail -p password -s /bin/false -e 2002-12-01 -m user1"
> comment remplacer "password" par sa valeur cryptée (j'ai essayé "-p
> crypt(password, aZ)", mais ça n'a rien donné!).
>

Essaye un truc comme ca :

adduser -g mail -p `htpasswd -nb user passwd_en_clair | cut -d: -f2`
-s /bin/false blablabla....

htpasswd kesako ?

"htpasswd is used to create and update the flat-files used to store
usernames and password for basic authenticationof HTTP users."

Et par defaut ca utilise crpyt(3), ca tombe bien puisque c'est ce qui
t'interesses :)

--
DEGEZ Romain -- EPITECH Promo 2006
Administrateur Systemes & Reseaux pour SmartJog (Video broadcasting)
President de Cycom l'assocation de jeux en reseau de l'EPITA/EPITECH
Debian GNU/Linux user -- UIN: 10806422 -- mail: rde...@ouhyeah.com
GPG Fingerprint : FD0B AF56 EDC1 98ED 95B9 636F B5D2 4CAB 0B36 3FE2

signature.asc

Alain Tesio

unread,
Jul 21, 2002, 8:20:08 AM7/21/02
to
On 21 Jul 2002 14:12:38 +0200
Romain DEGEZ <rde...@ouhyeah.com> wrote:

> htpasswd kesako ?
>
> "htpasswd is used to create and update the flat-files used to store
> usernames and password for basic authenticationof HTTP users."

Ci-joint un script perl qui gère aussi un salt comme demandé par
le post initial.

Alain

crypt_password.pl

Romain DEGEZ

unread,
Jul 21, 2002, 8:30:05 AM7/21/02
to
Le dim 21/07/2002 à 14:12, Romain DEGEZ a écrit :
> Le dim 21/07/2002 à 13:56, BULLIER a écrit :
> > La question à 10 cents du dimanche après-midi...
> >
> > Je souhaite, dans un script shell créer un compte user avec la cmd "adduser".
> > Pour créer le le mot de passe il faut utiliser l'option -p suivi du mdp deja
> > crypté.
> > Or je ne parviens pas à le faire fonctionner...
> > Ex: "# adduser -g mail -p password -s /bin/false -e 2002-12-01 -m user1"
> > comment remplacer "password" par sa valeur cryptée (j'ai essayé "-p
> > crypt(password, aZ)", mais ça n'a rien donné!).
> >
>
> Essaye un truc comme ca :
>
> adduser -g mail -p `htpasswd -nb user passwd_en_clair | cut -d: -f2`
> -s /bin/false blablabla....
>
> htpasswd kesako ?
>
> "htpasswd is used to create and update the flat-files used to store
> usernames and password for basic authenticationof HTTP users."
>
> Et par defaut ca utilise crpyt(3), ca tombe bien puisque c'est ce qui
> t'interesses :)

Correctif, (honte sur moi), l'utilisation de cut dans ce cas est plutot
risqué puisque si le password généré contient ":" on risque d'avoir une
surprise :)
Il faut donc utiliser une autre methode pour parser le resultat de
htpasswd.

signature.asc

Samuel Pasquier

unread,
Jul 21, 2002, 8:50:10 AM7/21/02
to
---> Original Message <---
On 21 Jul 2002 14:20:12 +0200
Romain DEGEZ <rde...@ouhyeah.com>
(Romain DEGEZ) wrote:
<BEGIN>

| > adduser -g mail -p `htpasswd -nb user passwd_en_clair | cut -d: -f2`
| > -s /bin/false blablabla....
| >
| > htpasswd kesako ?
| >
| > "htpasswd is used to create and update the flat-files used to store
| > usernames and password for basic authenticationof HTTP users."
| >
| > Et par defaut ca utilise crpyt(3), ca tombe bien puisque c'est ce qui
| > t'interesses :)
|
| Correctif, (honte sur moi), l'utilisation de cut dans ce cas est plutot
| risqué puisque si le password généré contient ":" on risque d'avoir une
| surprise :)
| Il faut donc utiliser une autre methode pour parser le resultat de
| htpasswd.
|
<END>

il me semble bien que crypt ne te sort jamais de password crypte contenant
de caractere ':', donc a mon avis ta technique de cut est ok.

--
Samuel Pasquier
"Mieux vaut viser la perfection et ne pas l'atteindre
que viser l'imperfection et l'atteindre"
GPG FP = D2CB EA63 8E00 F8A9 E6B5 522C 4630 2318 16EA C969

BULLIER

unread,
Jul 21, 2002, 9:40:08 AM7/21/02
to
Merci à alain et à romain pour leur réponses précise et efficace (je ne suis
pas le seul à travailler le dimanche après-midi)!
Après quelques tests, il semble que samuel ait raison et que crypt ne sorte
jamais de chaine contenant ":".
Aussi, je vais utiliser la fonction htpasswd, elle est plus simple à
incorporer dans mon script.

Merci à tous!

Eric Leclercq

unread,
Jul 21, 2002, 10:30:13 AM7/21/02
to
Autant utiliser 'mkpasswd' (dans le package 'whois') qui est
un «Overfeatured front end to crypt(3)» :)

--
Eric Leclercq

"Un ouapiti, c'est vert, ça a des piquants ronds
et ça fait glop quand on le jette à l'eau."
Boris Vian - L'herbe rouge

Romain DEGEZ

unread,
Jul 21, 2002, 10:40:05 AM7/21/02
to
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)» :)

Bien vu :)
Il s'etait caché dans le package whois le fourbe :)

C'est effectivement le moyen le plus propre pour le script d'Eric.

signature.asc

ch045-2

unread,
Jul 21, 2002, 11:50:11 AM7/21/02
to
Par defaut, la page man du mkpasswd de ma station renvoit:
"mkpasswd generates passwords and can apply them automatically to users.
mkpasswd is based on the code from Chapter 23 of the O'Reilly book "Exploring
Expect". "
Pour moi cette fonction ne remplie pas les conditions recherchées.
Elles génere un nouveau mot de passe, elle ne crypte pas un mot de passe
existant!
Je trouve un peu lourd d'installer whois pour génerer un mot de passe.
Je reste donc sur la proposition de Romain.

Encore merci et bonne soirée à tous.

Romain DEGEZ

unread,
Jul 21, 2002, 12:20:08 PM7/21/02
to
Le dim 21/07/2002 à 17:47, ch045-2 a écrit :
> Par defaut, la page man du mkpasswd de ma station renvoit:
> "mkpasswd generates passwords and can apply them automatically to users.
> mkpasswd is based on the code from Chapter 23 of the O'Reilly book "Exploring
> Expect". "
> Pour moi cette fonction ne remplie pas les conditions recherchées.
> Elles génere un nouveau mot de passe, elle ne crypte pas un mot de passe
> existant!
> Je trouve un peu lourd d'installer whois pour génerer un mot de passe.
> Je reste donc sur la proposition de Romain.
>
> Encore merci et bonne soirée à tous.
>

Hum c'est etrange ce que tu nous dis la...

NAME
mkpasswd - Overfeatured front end to crypt(3)

SYNOPSIS
mkpasswd PASSWORD SALT

DESCRIPTION
mkpasswd encrypts the given password with the crypt(3)
libc function using the given salt.


~> mkpasswd passwd_en_clair
j3YSc52PxkXz2

Ce qui a l'air tout a fait correct pour faire ce que tu recherches ?!

Ne confonds tu pas avec makepasswd qui lui ne prend pas d'argument
et genere un mot de passe totalement aleatoire ?

signature.asc

ch045-2

unread,
Jul 21, 2002, 1:30:27 PM7/21/02
to
Je persiste et je signe:

sur ma station à la maison:
$man passwd
NAME
mkpasswd - generate new password, optionally apply
it to a user

SYNOPSIS
mkpasswd [ args ] [ user ]

INTRODUCTION


mkpasswd generates passwords and can apply them
automatically to users. mkpasswd is based on the

code from Chapter 23 of the O'Reilly book "Explor­
ing Expect".

$ mkpasswd
m0rw4YTfu
$mkpasswd mypass
passwd: Only root can specify a username

CQFD...

Mon serveur ne renvoi rien (j'ai installé au plus juste):
$ man mkpasswd
Aucune entrée de manuel pour mkpasswd

Christophe « CHiPs » PETIT

unread,
Jul 21, 2002, 5:30:18 PM7/21/02
to
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 <ch...@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.]

0 new messages