ユーザのパスワード変更を一度にしてしまおう

csvファイルはこんな感じでいいや(^^;;

user1,pass1,
user2,pass2,
:
:
usern,passn,

perlで書いてみた。ま、いっか。sambaのもこれでいいや。
expectのautopasswdを改造する。

#! /usr/bin/perl

&csv_file_read("./passwd.csv");

for ($x = 0 ; $x <= $#opwork ; $x++) {
$uname = $opwork[$x][0];
$newpwd = $opwork[$x][1];
print $uname;
print " ";
print $newpwd;
print "\n";
&do_password();
}

sub do_password()
{
&admin_system(qq^
autopasswd $uname $newpwd
^);
}

sub admin_system()
{
my $cmd=shift;
system( qq^
> /var/tmp/rcp.log
{$cmd} > /var/tmp/rcp.log 2>&1
echo "rc=\$?" >> /var/tmp/rcp.log
^);

if ( $? ne 0 ) {
print("LOG:",`cat /var/tmp/rcp.log`);
# exit(1);
return 0
}
return 1
}

sub csv_file_read()
{
my ($fname) = @_;
open FH,$fname; #
my $ii = 0;
$#opwork =-1;
while(){
$r_org=$_;
# chomp $r_org;
@fwork = split(',',$r_org);
@{$opwork[$ii]} = @fwork;
$ii++;
}
close (FH);
}