Hi,

I am trying to write a perl5 script on Redhat that will use the ssh module 
and pass various commands to various servers.  I am trying to run multiple 
commands using ssh2 and run commands as root.  I am unable to log in 
directly as root and need to use the "su -" command.  However, I recieve 
"standard in must be a tty" and the command fails.  Does anyone know how I 
could pass the password into the "su" command using the ssh module written 
by B. Trott?  The hosts.txt file contains a hostname of the server to be 
logged on to.  Thanks.

btw all names, places, and passwords have been changed to protect the 
innocent

Justin


#!/usr/bin/perl

use strict;
use Net::Telnet ();
use Net::SSH::Perl;
use Net::FTP;

#### setting my variables
my ( $fh, $login, $pwd, $pwd2, $t, $s, $ssh, $hname, $error, $wait, $output, 
$info, $servers, $servers2, $supwd,
        %passwds, @patch, @openports, @unixchk, @pkglist, @seclog, $passwds, 
$tmpline, $ftp, $fhost, $crap, $exitst);
$fh = \*STDOUT;
$servers = "hosts.txt";
$servers2 = "foundhosts.txt";

$login = "joe";
$pwd = "password";
print "\n\n\nNew Test\n\n";
open (HOSTS, "$servers") or Error_Log("Could not open HOSTS: $!\n");
while(<HOSTS>) {
        ($hname,$supwd) = split;
        $passwds{$hname} = $supwd;
}

for my $hname ( keys %passwds) {
        $s = Net::SSH::Perl->new($hname, protocol => 2, port => 22);
        unless($s->login( $login, $pwd)){
                Error_Log("SSH Login failed on $hname: $!\n");
                $s->close;
                next;
        }

        ($wait, $crap, $exitst) = $s->cmd("ls /export/home/joe/test");
        if("$wait" ne "/export/home/joe/test") {
                print "you rock dude !!!\n";
        }
        else {
                print "Sucks to be you, I know I know!!!\n";
        }
        ($ftp, $crap, $exitst) = $s->cmd("ls /tmp");
        print $ftp;

        ($t, $crap, $exitst) = $s->cmd("su - ",'password');
        print "$t, $crap, $exitst\n";
        #($t, $crap, $exitst) = $s->cmd("$passwds{$hname}");
        #print "$t, $crap, $exitst\n";
        ($t, $crap, $exitst) = $s->cmd("pwd");
        print $t;

}


_________________________________________________________________
Chat with friends online, try MSN Messenger: http://messenger.msn.com


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to