Google Grupper støtter ikke lenger nye Usenet-innlegg eller -abonnementer. Historisk innhold er fortsatt synlig.

setting a user passwd

Sett 19 ganger
Hopp til første uleste melding

Victor Pezo

ulest,
21. juli 2005, 20:59:3121.07.2005
til begi...@perl.org
Hi, I am developing a program that sets passwd for any user but i dont want the operator sets the passwd. I want to give it as a result of a function

[victor@mail victor]$ perl passwd.pl victor1

#!/usr/bin/perl
$usuario=$ARGV[0];
$passwd="PASSWDGENERATEBYOTHERFUNCTION"
`sudo /usr/sbin/useradd -c $usuario -s /sbin/nologin $usuario`;
`sudo /usr/bin/passwd $usuario`;

I could add the user, but in the set passwd line.
When I use this script always I have a prompt of password assigment that I dont want. Could you give me some light of what can I do?

Thanks in advance,

Victor

Bob Showalter

ulest,
22. juli 2005, 08:47:2622.07.2005
til Victor Pezo, begi...@perl.org

The classic answer to this is to use the Expect module, because passwd(1)
historically has read only from /dev/tty.

However, if you're on Linux, passwd(1) has a --stdin option that lets you
supply the password via standard input. So you could write something like
(untested):

system "echo \Q$passwd\E | sudo /usr/bin/passwd --stdin \Q$usario\E";

0 nye meldinger