Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

script creation ensemble de comptes utilisateur

7 réponses
Avatar
JP WILLIAM
Bonjour à tous,
je débute sur ce langage et j'aimerais savoir comment faire pour q
je souhaite créer automatiquement une trentaine se comptes utilisateur.
Pour cela toutes les informations des uilisateurs sont saisies dant un
fichier je je vais parcourrir.
Mon problème est le suivant: Comment faire pour que le programme rentre
deux fois le mot de passe lors de l'utilisation de la commande
"password $login" sachant que je dispose de la variable $password comme
mot de passe.

Merci d'avance

7 réponses

Avatar
DominiX
ici même:JP WILLIAM a écrit
Bonjour à tous,
je débute sur ce langage et j'aimerais savoir comment faire pour q
je souhaite créer automatiquement une trentaine se comptes
utilisateur. Pour cela toutes les informations des uilisateurs sont
saisies dant un fichier je je vais parcourrir.
Mon problème est le suivant: Comment faire pour que le programme
rentre deux fois le mot de passe lors de l'utilisation de la commande
"password $login" sachant que je dispose de la variable $password
comme mot de passe.

Merci d'avance


(echo $password; echo $password) | passwd $user

-- dominix

Avatar
Laurent Wacrenier
DominiX écrit:
(echo $password; echo $password) | passwd $user


passwd lit normalement sur un tty.

Avatar
JP WILLIAM
Laurent Wacrenier wrote:
DominiX écrit:

(echo $password; echo $password) | passwd $user



passwd lit normalement sur un tty.
la commande echo est ume commande système. Comment l'intégrer ?

Ne faudrait-il pas une commande de style
print "$password n $password n ......./usr/bin/passwd";
Quelqu'un peut-il me corriger cette ligne de commande ?
Suis-je dans la bonne voie ?


Avatar
DominiX
ici même:Laurent Wacrenier <lwa@ teaser . fr> a écrit
DominiX écrit:
(echo $password; echo $password) | passwd $user


passwd lit normalement sur un tty.


oui, tu as raison, j'ai pris cet exemple (de memoire)
d'un script qui en fait evoquait saslpassword...

--
dominix


Avatar
DominiX
ici même:JP WILLIAM a écrit
Laurent Wacrenier wrote:
DominiX écrit:

(echo $password; echo $password) | passwd $user



passwd lit normalement sur un tty.
la commande echo est ume commande système. Comment l'intégrer ?

Ne faudrait-il pas une commande de style
print "$password n $password n ......./usr/bin/passwd";
Quelqu'un peut-il me corriger cette ligne de commande ?
Suis-je dans la bonne voie ?


Laurent a raison passwd lit sur un tty,
avec perl ca irait mieux d'utiliser Expect.pm
genre ca mais attention a la locale. non testé.


use Expect;
my $expobj = Expect->spawn("/bin/passwd", $user);
die "problem $!n" unless (defined $expobj);
$expobj->log_stdout(0);
$expobj->expect(10,"New password: ");
print $expobj "$passwdr";
$expobj->expect(10, "Re-enter new password: ");
print $expobj "$passwdr";
$pobj->expect(10, "successfully changed") or die "password change failed";

$expobj->soft_close();



Avatar
JP WILLIAM
J'essaye ce script et je vous tiens au courant.
@+
"DominiX" a écrit dans le message de news:
41e4e869$0$29430$


ici même:JP WILLIAM a écrit
Laurent Wacrenier wrote:
DominiX écrit:

(echo $password; echo $password) | passwd $user



passwd lit normalement sur un tty.
la commande echo est ume commande système. Comment l'intégrer ?

Ne faudrait-il pas une commande de style
print "$password n $password n ......./usr/bin/passwd";
Quelqu'un peut-il me corriger cette ligne de commande ?
Suis-je dans la bonne voie ?


Laurent a raison passwd lit sur un tty,
avec perl ca irait mieux d'utiliser Expect.pm
genre ca mais attention a la locale. non testé.


use Expect;
my $expobj = Expect->spawn("/bin/passwd", $user);
die "problem $!n" unless (defined $expobj);
$expobj->log_stdout(0);
$expobj->expect(10,"New password: ");
print $expobj "$passwdr";
$expobj->expect(10, "Re-enter new password: ");
print $expobj "$passwdr";
$pobj->expect(10, "successfully changed") or die "password change failed";

$expobj->soft_close();







Avatar
JP WILLIAM
JP WILLIAM wrote:
J'essaye ce script et je vous tiens au courant.
@+
"DominiX" a écrit dans le message de news:
41e4e869$0$29430$


ici même:JP WILLIAM a écrit

Laurent Wacrenier wrote:

DominiX écrit:


(echo $password; echo $password) | passwd $user



passwd lit normalement sur un tty.


la commande echo est ume commande système. Comment l'intégrer ?
Ne faudrait-il pas une commande de style
print "$password n $password n ......./usr/bin/passwd";
Quelqu'un peut-il me corriger cette ligne de commande ?
Suis-je dans la bonne voie ?


Laurent a raison passwd lit sur un tty,
avec perl ca irait mieux d'utiliser Expect.pm
genre ca mais attention a la locale. non testé.


use Expect;
my $expobj = Expect->spawn("/bin/passwd", $user);
die "problem $!n" unless (defined $expobj);
$expobj->log_stdout(0);
$expobj->expect(10,"New password: ");
print $expobj "$passwdr";
$expobj->expect(10, "Re-enter new password: ");
print $expobj "$passwdr";
$pobj->expect(10, "successfully changed") or die "password change failed";

$expobj->soft_close();






Merci à vous tous. ça marche après quelques adaptations des messages.