[Omaha.pm] Net::SSH::Perl and sudo or su
Tony Simons
webmaster at tvortex.net
Thu Dec 6 09:03:44 PST 2007
I'm a bit new to perl and am having a bit of trouble getting a sudo (or su
for that matter) to work through Net::SSH::Perl.
Interactive with a shell doesn't seem to do anything for me. And I'd like
to not have to fuss with the sudoers to turn off the requiretty.
Snippets of my code utilizing it...
#!/usr/bin/perl -w
#---------------Includes----------------
use strict;
use warnings;
#use Getopt::Std;
use Net::SSH::Perl;
use Term::ReadKey;
use Getopt::Long;
....
my $cmd = "sudo test";
my $ssh = Net::SSH::Perl->new($hos, interactive =>1, use_pty => 1, debug =>
1, port => $port, protocol => '2,1', options => ["BatchMode yes"]) or
die("Could not connect");
#$ssh->login($user, $pass);
$ssh->login($user);
#$ssh->shell;
my ($stdout, $stderr, $exit) = $ssh->cmd($cmd);
print "OUT:$stdout \nERR:$stderr \nEXIT:$exit \n";
....
Response from a sudo test
Use of uninitialized value in concatenation (.) or string at ./SerialPush.pl
line 79.
OUT:
ERR:sudo: sorry, you must have a tty to run sudo
EXIT:1
...
Response from a su root test
Use of uninitialized value in concatenation (.) or string at ./SerialPush.pl
line 79.
OUT:
ERR:standard in must be a tty
EXIT:1
Any ideas on how I can get this to work?
What I'm trying to do is get a perl script to move a file from tmp to etc,
or just simply write a config file to /etc on a ton of remote systems.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.pm.org/pipermail/omaha-pm/attachments/20071206/06b5eb91/attachment.html
More information about the Omaha-pm
mailing list