[Perl] Commande Root sur machine distante

Maillon Messages postés 156 Date d'inscription   Statut Membre Dernière intervention   -  
Maillon Messages postés 156 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Alors voilà j'aimerai me connecter en perl à une machine distante mais pour executer une commande en root.
Sachant que je ne peux pas me connecter en root via ssh (permission refusée).
Sachant également que quand je me connecte sur la machine distante, pour passer en root il faut que je fasse "sudo su -" et ensuite que je tape le mot de passe.

Il faudrait que je fasse un truc du genre :
$cible="machine_distante";
system("/usr/local/bin/ssh $cible; sudo su -; motdepasse; commande à faire en root");

J'ai penser à la commande expect mais je sais pas trop comment je pourrais l'utiliser ici.

Je suis sous SunOs pour information si ça peut aider.

Merci beaucoup de votre aide.

Cordialement,
A voir également:

3 réponses

Maillon Messages postés 156 Date d'inscription   Statut Membre Dernière intervention   5
 
Voilà ce que j'ai fais par contre j'ai un problème, la dernière commande ne veut pas se lancer.


#!/usr/bin/expect -f

set prompt ">>> ";

spawn ssh host
expect "$prompt";
send "sudo su -\r";
expect "Password: $";
send "motdepasse\r";
expect "$prompt";
send "ls /export\r";
exit;

Est-ce que quelqu'un sait pourquoi ?

Merci de votre aide.

Cordialement,
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
0
Maillon Messages postés 156 Date d'inscription   Statut Membre Dernière intervention   5
 
Merci lamij20 ;-)

En fait j'ai fais ça maintenant :
#!/usr/bin/expect -f

set prompt ">>> ";
set force_conservative 1;

set timeout 3
spawn ssh host
expect "$prompt"
send "sudo su -\r"
expect "Password: $"
send "motdepasse\r"
expect "$prompt"
send -- "sh /tmp/test.sh\r"
send -- "exit\r"
send -- "exit\r"
interact

Ca marche par contre il m'affiche ça à la fin :
[root@host] # sh /tmp/test.sh
exit
exit
toto
[root@host] # bash-2.05$ exit
logout
Connection to host closed.

Moi ce que je voudrais c'est dès qu'il affiche toto qu'il se délogue de la machine....
0