Rechercher : dans
Par :

[Perl] Commande Root sur machine distante

Dernière réponse le 18 mar 2009 à 15:53:29 Maillon, le 17 mar 2009 à 10:39:48 
 Signaler ce message aux modérateurs

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,

Configuration: Windows XP
Firefox 2.0.0.20

Meilleures réponses pour « [Perl] Commande Root sur machine distante » dans :
Utilisation de Telnet Voir Présentation de Telnet Telnet est un protocole permettant d'émuler un terminal à distance, cela signifie qu'il permet d'exécuter des commandes saisies au clavier sur une machine distante. L'outil Telnet est une implémentation du protocole...
Commandes IP relatives aux réseaux sous Windows VoirIl est parfois très utile de connaître les commandes IP, pour analyser voire configurer ses réseaux TCP/IP. Voici la liste de ces commandes à utiliser dans une fenêtre DOS...
[Windows] Démarrer/arrêter un service en ligne de commande VoirL'outil netsh (netsh.exe) permet d'automatiser le démarrage ou l'arrêt d'un service grâce à la ligne de commande suivante : Pour démarrer un service : Net start nom_du_service Pour arrêter un service : Net stop nom_du_service Cela nécessite les...
Télécharger Real VNC VoirRealVNC est un client VNC (virtual network computing) permettant de prendre la main à distance sur des ordinateurs, pour peu qu'un serveur VNC soit lancé sur les machines distantes. La présente version de VNC est une version gratuite mais limitée....
Télécharger Tight VNC VoirVNC (Virtual Network Computing) est une application client/serveur permettant d'accéder graphiquement à une machine distante à travers les réseaux, quelle que soit son système d'exploitation. Grâce à VNC, il est possible d'accéder à une machine de...
Télécharger Cobian Backup VoirCobian Backup est une application multitâche permettant de planifier une sauvegarde automatique de fichiers ou répertoires vers une destination en local ou sur une machine distante. La sauvegarde de site FTP est également possible, dans les deux...
VPN - Réseaux Privés Virtuels (RPV) VoirLe concept de réseau privé virtuel Les réseaux locaux d'entreprise (LAN ou RLE) sont des réseaux internes à une organisation, c'est-à-dire que les liaisons entre machines appartiennent à l'organisation. Ces réseaux sont de plus en plus souvent...
Utilisation de Telnet VoirPrésentation de Telnet Telnet est un protocole permettant d'émuler un terminal à distance, cela signifie qu'il permet d'exécuter des commandes saisies au clavier sur une machine distante. L'outil Telnet est une implémentation du protocole...
Web Services VoirAvec l'interconnexion des ordinateurs en réseau et en particulier à travers internet, il devient possible de faire fonctionner des applications sur des machines distantes. L'intérêt d'une application fonctionnant à distance peut à première vue...

1

Maillon, le 17 mar 2009 à 15:56:43

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,

Répondre à Maillon

2

lami20j, le 17 mar 2009 à 17:13:50
Répondre à lami20j

3

 Maillon, le 18 mar 2009 à 15:53:29

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....

Répondre à Maillon