Le Mercredi 20 Février 2002 00:22, vous avez écrit :
> Mais si je voulais par exemple créer par un script une centaine de
> comptes à partir d'une base mysql ?
 Je pense que passwd est

Essaye le script Perl suivant, il prend des login/pass d'une base MySQL 
et crée des utilisateurs avec leurs mots de passe (à toi de l'adapter 
au schéma de ta base, etc.) :

#!/usr/bin/perl -w

use DBI;
use strict;

my $dbh = DBI->connect("DBI:mysql:database=foobar;host=localhost", 
"dbuser", "dbpasswd");
my $sth = $dbh->prepare("SELECT login,passwd FROM usertable");
$sth->execute();
while (my $tuple = $sth->fetchrow_hashref()) {
        my $salt = join("", (".", "/", "0".."9", "A".."Z", "a".."z")[rand(64), 
rand(64)]);
        my $cryptpass = crypt($tuple->{"passwd"}, $salt);
        system("/usr/sbin/useradd -p ".$cryptpass." ".$tuple->{"login"});
}
$sth->finish();
$dbh->disconnect();

Ceci est bien sûr distribué « dans l'espoir que ce sera utile, mais 
sans aucune garantie », pour réprendre les termes impérissables de la 
GPL (autrement dit, j'ai pas testé, le déboguage est pour toi :-)

> dans man adduser ? Quel est l'algorithme utilisé par les mots de
> passes ? Il me semble qu'il existe une telle fonction dans php non ?

Sauf erreur de ma part, crypt(3) utilise DES, mais j'ai cru comprendre 
que le programme passwd utilisait MD5. Ceci étant, DES n'est pas ici un 
gros problème de sécurité, vu qu'il faut déjà avoir r00té la machine 
pour lire le fichier shadow :-)

Pour ce qui est de PHP, tu trouveras la fonction /ad hoc/ à 
http://www.php.net/manual/en/function.crypt.php

> Tout ceci me parait très "bidouilleur", il n'y a pas de moyen plus
> direct d'arriver à mon résultat ? 

Si tu veux dire une commande qui donnerait le mot de passe crypté 
directement, tu peux très facilement en faire une du script ci-dessus 
en enlevant les commandes relatives à MySQL et en utilisant $ARGV[0] 
comme mot de passe en clair. Après, tu peux simplement utiliser un truc 
du style `useradd -p $(lacommande lepasswd) lelogin'. Easy :-)

> Merci encore et bonne nuit à tout le monde ! 

Bonne journée à toi :-)

Amicalement,
-- 
[ Jacques Caruso <[EMAIL PROTECTED]>                  Développeur PHP ]
[ Monaco Internet                           http://monaco-internet.mc/ ]
[ Tél : (+377) 93 10 00 43                        Clé PGP : 0x41F5C63D ]
[ * `` If you can't beat your computer at chess, try kick boxing. '' * ]


Linux-Azur :      http://www.linux-azur.org
Désinscriptions: http://www.linux-azur.org/liste.php3
**** Pas de message au format HTML, SVP ****

Répondre à