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 ****