[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 -
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,
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:
- [Perl] Commande Root sur machine distante
- Invite de commande - Guide
- Machine virtuelle windows - Guide
- Commande terminal mac - Guide
- Kingo root - Télécharger - Divers Utilitaires
- Commande dism - Guide
3 réponses
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,
#!/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,
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....
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....