Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!

ausführen von Befehlen als su - mittels ssh Pipe

Moderatoren: irix, Dayworker

Member
Beiträge: 4
Registriert: 21.01.2013, 15:07

ausführen von Befehlen als su - mittels ssh Pipe

Beitragvon chaser » 22.01.2013, 09:17

Hallo Leute,

ich habe folgendes Problem:

Ich habe einen esx4 am laufen.
Ich möchte folgendes per Shellskript realisieren:

- mittels SSH-Pipe ein TAR-ARchive an den ESX senden und dort entpacken; zusätzlich mit

Code: Alles auswählen

su - -c "Command ; Command"
innerhalb der Pipe auf dem Esx eine Benutzergruppe incl. Benutzer anlegen, Verzeichnisse erstellen, Besitzberechtigung mehrerer Verzeichnisse zuweisen.

- User auf ESX mit SSH Zugirffsrechten ist bereits erstellt. SSH-Login funktioniert.

Mein Problem in meinem Skript ist folgendes:

Ich versende das TAR-Archive mittels:

Code: Alles auswählen

tar -cf - /home/test/file1 /home/test/file2 | ssh -t user@ip "tar -xpvf - -C ~"


Das Archiv wird an den esx gesendet und im aktuellen Benutzerverzeichniss des ESX entpackt.

Wenn ich nach dem entpacken auf dem ESX mit

Code: Alles auswählen

su - -c
zu root wechseln möchte und die Befehle zum User anzulegen übergeben will müsste dies doch wie folgt aussehen?

Code: Alles auswählen

tar -cf - /home/test/file1 /home/test/file2 | ssh -t user@ip "tar -xpvf - -C ~; su -c  "groupadd testgroup ; useradd -g testgroup -d /home/test -m test; mkdir /home/test/test11""


Im oben erwähnten Befehl bekomme ich nun folgendes Problem:
Ich beginne den Befehl in der SSH Pipe mit Anführungszeichen um das übergebene Archiv zu entpacken. Wenn ich nun in der Pipe nach su - -c wieder Anführungszeichen schreibe beende ich meine SSH-Pipe und die folgenden Befehle werden nicht gesendet.

Gibt es eine Möglichkeit dem Befehl su - -c die Befehle mitzugeben ohne Anführungszeichen zu verwenden?[/code]

Guru
Beiträge: 2731
Registriert: 23.02.2012, 12:26

Beitragvon ~thc » 22.01.2013, 09:38

Ich würde versuchen, die "inneren" Anführungszeichen zu escapen:

Code: Alles auswählen

tar -cf - /home/test/file1 /home/test/file2 | ssh -t user@ip "tar -xpvf - -C ~; su -c  \"groupadd testgroup ; useradd -g testgroup -d /home/test -m test; mkdir /home/test/test11\""

Member
Beiträge: 4
Registriert: 21.01.2013, 15:07

Beitragvon chaser » 22.01.2013, 10:01

Danke für den Tipp.
Leider funktioniert der Tipp mit dem Escapen nicht.
Der Aufruf entpackt zwar das tar aber der su befehl wird ignoriert.

Member
Beiträge: 4
Registriert: 21.01.2013, 15:07

Beitragvon chaser » 22.01.2013, 15:16

Hab nun folgendes versucht:
Die betreffenden Befehle in ein eigenes Script (command.sh) ausgelagert.
Allerdings ist es mir bislange nicht möglich das zweite Skript mit root-Rechten zu öffnen.

Mein Ansatz:

SSH Pipe mit:

tar -cf - /home/test/file1 /home/test/file2 /home/test/command.sh | ssh -t user@ip "tar -xpvf - -C ~; su - ; bash -s < /home/test1/home/test/command.sh

Das Script command.sh wird zwar ausgeführt aber nicht mit root rechten.

Wie kann ich das Skript als Root öffnen lassen.

Guru
Beiträge: 2731
Registriert: 23.02.2012, 12:26

Beitragvon ~thc » 22.01.2013, 17:52

Versuch es doch mal mit sudo (falls vorhanden).


Zurück zu „ESXi 4“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste