sudo & sh auf entfernten Rechnern

Antworten
Nachricht
Autor
micbur
Beiträge: 86
Registriert: 05. Jun 2004 15:55

sudo & sh auf entfernten Rechnern

#1 Beitrag von micbur » 23. Aug 2005 8:16

Hallo,

so leicht wie ich dachte, ist es doch nicht.

Ich habe zwei Maschinen. Und ich möchte auf der einen Maschine ein Skript schreiben, dass auf einer anderen Maschine andere Skripte ausführt. Und damit es so richtig kompliziert wird, soll das Ganze zum Schluss in ein PHP-Skript eingebunden werden.

Aber zunächst teste ich alles in der Shell des ersten Rechners.
Ich dachte, ich könnte entfernte Skripte dadurch starten, dass ich einfach

Code: Alles auswählen

sudo -u root sh 192.168.0.3:/path/to/script.sh
ausführe und dann läuft es. Leider bekomme ich die Fehlermeldung: No such file or directory.

Ich habe schon geschaut, aber sowohl sh, als auch sudo sind auf beiden Systemen vorhanden und der Pfad zum Skript stimmt auch.
Da bleibt nur noch ein Fehler in meiner Syntax, die aber laut man-pages korrekt ist bzw. ich glaube, dass sie korrekt ist.

Wie würdet ihr das machen?
Ein Skript auf einem Rechner, soll ein Skript auf einem anderen Rechner starten.

Ciao, micbur

klopskuchen
prolinux-forum-admin
Beiträge: 1444
Registriert: 26. Jun 2004 21:18
Kontaktdaten:

#2 Beitrag von klopskuchen » 23. Aug 2005 20:32

sudo -u root sh 192.168.0.3:/path/to/script.sh
Du meinst rsh?
When all else fails, read the instructions .

micbur
Beiträge: 86
Registriert: 05. Jun 2004 15:55

#3 Beitrag von micbur » 24. Aug 2005 8:45

Ja, also ... so richtig weiß ich nicht, was ich meine. Ich weiß nur, was ich will.
Ich werde es mal probieren.

Ich möchte vom Webserverein Skript starten, dass ein Skript auf dem Datenbankserver startet. Das Skript auf dem Datenbankserver führt dann ein tolles rsync aus.

Das Ganze soll dann ohne erneute Eingaben vom Benutzer funktionieren. Also habe ich auf den beiden Servern schon RSA-Schlüssel getauscht. Ziel ist es, auf dem Webserver ein PHP-Skript laufen zu lassen, dass vom Benutzer gestartet wird.

Mir fielen darauf hin zwei Wege ein, ein Mal mittels ssh und ein Mal mittels sudo.

Ciao, micbur

klopskuchen
prolinux-forum-admin
Beiträge: 1444
Registriert: 26. Jun 2004 21:18
Kontaktdaten:

#4 Beitrag von klopskuchen » 24. Aug 2005 20:51

Bei dem rsh läuft ein Dämon auf einem Server der Shellbefehle von Clienten verarbeitet. Den Ablauf kann man sich ähnlich wie bei telnet vorstellen. War aber wohl nicht ganz das was du suchst.

Mit der Funktion exec kannst du aus php heraus shell-Befehle absetzen. Mit den Rechten des scripts!

Code: Alles auswählen

<HTML>
<HEAD><TITLE>micburs remote-webshell</TITLE></HEAD>
<BODY>

<?php
  $list = exec &#40;'ls -l'&#41;;
  echo "$list";
?>

</BODY>
</HTML>
MfG, Klopskuchen
When all else fails, read the instructions .

kanonenfutter
Beiträge: 266
Registriert: 10. Sep 2004 14:37
Kontaktdaten:

#5 Beitrag von kanonenfutter » 24. Aug 2005 21:29

> Mir fielen darauf hin zwei Wege ein, ein Mal mittels ssh und ein Mal mittels sudo.

und wieso machst du es dann nicht, nämlich ssh nehmen?
ssh -i identity_file XXXX -l root $hostname $command
"Email und Internet haben gemeinsam, dass sie beide in HTML geschrieben sind" (Peter Huth, TV-Computerexperte). Zitiert nach http://www.antihuth.de/

micbur
Beiträge: 86
Registriert: 05. Jun 2004 15:55

#6 Beitrag von micbur » 25. Aug 2005 8:19

kanonenfutter hat geschrieben:> Mir fielen darauf hin zwei Wege ein, ein Mal mittels ssh und ein Mal mittels sudo.

und wieso machst du es dann nicht, nämlich ssh nehmen?
ssh -i identity_file XXXX -l root $hostname $command
Guten Morgen,

Weil bei einem musste ich noch ein Passwort eingeben und Dialoge kann man mit PHP schlecht beantworten.
Und irgendwie hatte das Andere auch nicht funktioniert. Ich weiß jetzt auch nicht mehr warum, aber jedenfalls war die Ausgabe nicht wie gewünscht und gemacht wurde auch nichts. Returncode war -1.

Um genau zu sein, gibt es drei Möglichkeiten in PHP etwas per Shell auszuführen:
- exec
- shell_exec
- system

Funktionieren alle ähnlich. Da ich ein rsync ausführen möchte, hatte ich mich für eine Variante entschieden, bei der ich die Ausgabe des Programms zurückbekomme.

Habt ihr das mal ausprobiert?
Ich meine, ich habe ja nun zwei Tage - immer mal wieder, wenn mir was eingefallen ist - rumprobiert und da habe ich es nicht hinbekommen, zumindest nicht so wie ich es haben wollte.

Aber vielen Dank. Ich werde es probieren.

Ciao, micbur

Antworten