• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Terminal-Script soll sich auf Server einloggen und dort Befehle ausführen

SPQRInc

Empire
Registriert
24.10.13
Beiträge
85
Guten Tag, liebe Apfeltalker,


ich habe aktuell einen Plan: Bei mir zu Hause steht ein kleiner Homeserver, welchen ich ab und an auch von außen ansteuere.


Da ich nun auch mit einem Macbook unterwegs bin, frage ich mich, ob sich folgendes umsetzen lässt.


Ich möchte gerne ein kleines Script schreiben, welches folgendes tut:



  • öffne eine SSH-Verbindung mit den Benutzerdaten meinbenutzer:p[email protected]
  • führe den Befehl: "su" durf
  • gebe das Passwort "abcdef" an
  • führe den Befehl "cp Archiv.zip /var/backups/Archiv.zip" aus


Wie ließe sich das realisieren?


Dieses Script möchte ich verschlüsselt auf meinem Macbook ablegen (man kann ja mountbare Images verschlüsseln, das wäre dafür ideal).
 

Wuchtbrumme

Golden Noble
Registriert
03.05.10
Beiträge
21.467
das geht schon (wobei ich mir nicht sicher bin, ob man in su was reinpipen kann; dass man das aber auch nicht möchte und vor allem su nur als "su -" aufruft, liegt auf der Hand).

Dein Anliegen zeigt mir aber, dass es Dir wichtig wäre, dass niemand Dein Passwort in die Hände bekommen kann (übrigens: den FW-DMA-Angriff auf FileVault-verschlüsselte Festplatten, der ähnlich auch mit Thunderbolt funktioniert, kennst Du?).
Deswegen würde ich auch zertifikatsbasiertes ssh nicht verwenden. Das Passwort irgendwo zu hinterlegen scheidet ja wohl völlig aus.

Muss das unbedingt auf Kommando von remote erfolgen oder könntest Du das nicht auch zeitgesteuert per cronjob machen lassen?

Habe ich Dich überhaupt richtig verstanden, dass Archiv.zip nur lokal auf dem Server kopiert werden soll?

Was hältst Du davon, den Benutzeraccount auf dem Server in die sudoers aufzunehmen? Damit macht man ein "sudo su -" und muss das Passwort des root Users nicht nur nicht wissen, es kann auch absolut ewig lang und somit relativ sicher sein.
 

gKar

Maunzenapfel
Registriert
25.06.08
Beiträge
5.362
Wenn ich über eine SSH-Situng remote ein Script auf einem Server ausführen will, erstelle ich dort auf dem Server das Shellscript und rufe es nur remote über SSH auf:
ssh username\@host '/path/to/script.sh arguments'

Statt remote eine Sitzung mit User A zu starten und von dort per "su B" zum User B zu wechseln, würde ich mich direkt als User B einloggen.

Ein sudo oder su (-) zum Erlangen von Root-Rechten würde ich ganz vermeiden. Der ausführende User sollte alle Rechte haben, die zum Ausführen des Scripts nötig sind.
 

TaTonka

Neuer Berner Rosenapfel
Registriert
19.03.06
Beiträge
1.975
Ein sudo oder su (-) zum Erlangen von Root-Rechten würde ich ganz vermeiden. Der ausführende User sollte alle Rechte haben, die zum Ausführen des Scripts nötig sind.

Dies. Allerdings will SPQRInc das Backup nach /var/Backups schreiben. /var ist als nicht-privilegierter User nicht beschreibbar. Dies hat auch einen Grund. Wenn man http://en.wikipedia.org/wiki/Unix_filesystem konsultiert, sieht man, dass /var für variablenn Inhalt gedacht ist. Prozess-ID-Files, Mails, sowas halt.
Ein Backup ist nicht variabel, sondern permanent, vorausgesetzt, man betreibt Versioning und schreibt die Deltas in eine neue Datei.

Vor allem: Wenn es um Dateien geht, die nichts mit dem Betriebssystem zu tun haben (d.h. das Betriebssystem würde auch ohne diese Dateien laufen, bzw. die Dateien sind auf einer nackten frischen Installation nicht vorhanden), ist der einzig richtige Ort dafür irgendwo unter /home. Und für /home muss der User nicht privilegiert sein, um da Schreibrechte zu haben.
 

Scotch

Bittenfelder Apfel
Registriert
02.12.08
Beiträge
8.033
Gibt es irgendeinen Grund für den TE, warum man sowas nicht mit rsync macht?
 

Wuchtbrumme

Golden Noble
Registriert
03.05.10
Beiträge
21.467
der Thread dürfte tot sein; den TE hat der Input sowieso nicht gekümmert.
 

Scotch

Bittenfelder Apfel
Registriert
02.12.08
Beiträge
8.033
Hatte das Datum des OP nicht gesehen...