kdamundson has asked for the wisdom of the Perl Monks concerning the following question:
OK, I'm back. I now have this module in place and it fails when running the cmd.
my ($server, $newpass) = @_;
my $ssh = Net::OpenSSH->new($server);
my $userstr = "root" . "\:" . "$newpass";
my $cmd = "echo $userstr | /usr/sbin/chpasswd";
# $ssh->system("$cmd");
$ssh->system({quote_args => 1}, $cmd);
if ($ssh->error)
{
Logit(*DBLOG,"FAILED: Remote SSH cmd\n");
return (1);
}
return (0,"$ssh->error");
The error from running the sytem command is:
bash: echo root:3\%vdm7cl | /usr/sbin/chpasswd: No such file or directory
The \ in front of the % is to escape a special character. This exact command works from the command line. It seems the module is not passing soemthing correctly to the shell, but the printout certainly looks good.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Net::OpenSSH error
by salva (Canon) on Mar 31, 2011 at 21:11 UTC | |
by kdamundson (Initiate) on Apr 01, 2011 at 15:31 UTC | |
by kdamundson (Initiate) on Apr 04, 2011 at 18:14 UTC |