PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Headless Virtualbox mit Autostart (/etc/init.d)



smartysmart34
19.09.08, 20:01
Hallo zusammen,

ich beabsichtige eine VM unter Virtualbox headless laufen zu lassen. Dabei möchte ich via Runlevel Start-/Stoppskript die Maschine beom Serverstart mit hochfahren und beim Server-Shutdown wieder abschalten.

Frage 1:
Ich nehme an, dass die Startskripte alle durch Root ausgeführt werden, die VM läuft also unter Root.
Die VM-Definitionen und .vdi-Files müssten also an einer Stelle liegen, die für Root zugänglich ist. Mir fällt da /root oder /var ein. Wie ist das bei Euch? Wo lege ich das am besten ab?

Frage 2:
Nennt mich paranoid, aber ich habe kein gutes Gefühl dabei, das als Root laufen zu lassen. Daher dachte ich, einen User VBHeadless anzulegen, in dessen Homedir die VM.Definition und .vdi abzulegen und den dann via Sticky-Bit die VM ausführen zu lassen.
Nun muss der ja aber nicht nur auf sein Homedir, sondern auch auf das vbox-headless-Executable zugreifen. Woran muss ich da noch denken, oder mach ich mir da eher was kaputt????

Danke und Gruß,
Martin

Rain_maker
19.09.08, 20:51
Nur weil die Startscripte von root ausgeführt werden, bedeutet das nicht zwingend, daß man dadurch auch den gestarteten Prozess _als_ root ausführen muss.

Einfachster Ansatz wäre über sudo/su (siehe man su und/oder man sudo).

Je nach Anwendung gibt es auch die Möglichkeit, einen Prozess ohne su/sudo "Tricks" als anderen User zu starten, dazu Hilfeseiten/manpage der entsprechenden Anwendung konsultieren.

Greetz,

RM

smartysmart34
20.09.08, 11:43
su / sudo kenne ich. Ich dachte nur immer, man muss dabei auch ein PAsswort mitgeben. Ist das im Rahmen von Skripten nicht so? Ich wollte die nicht im KLartext ablegen. Daher war mein erster Ansatz auch mit Sticky-Bit zu arbeiten.
Ich habe mir einen User VBHeadless angelegt. Dazu ein skript das im Moment nicht viel mehr macht als VBoxHeadless -s <imagename> aufzurufen. Das Skript gehört dem User VBHeadless und hat die STicky-Bits gesetzt. Wenn ich das als user martin starte bekomme ich die Fehlemeldung "unknown machine".
Wechsle ich per su zum User VBHeadless und führe das gleiche Kommando aus, läuft alles sauber.

Ne Idee woran das liegen könnte?

Danke und Gruß,
Martin

Rain_maker
20.09.08, 11:51
Ich dachte nur immer, man muss dabei auch ein PAsswort mitgeben.

Dann probier das doch mal als root mit su unter einer Nutzerkennung eines "normalen" Users einen Befehl abzusetzen.

smartysmart34
20.09.08, 13:22
Hm, das mit dem Passwort war mir tatsächlich nicht mehr klar. Danke!
Allerdings ist es immernoch so, dass beim Ausführen des Scriptes einfach NIX passiert. Ich bekomme noch nicht mal ne Fehlermeldung...
Wenn ich mich als VBHeadless anmelde klappt es. Nur via Script als root oder ein anderer User geht nicht. :-(

Das Script sieht so aus:



#!/bin/sh

su - VBHeadless VBoxHeadless -s WindowsXP2 &


Testweise habe ich mal noch ein "> log.txt" angehängt. Nix...

Danke udn GRuß,

Rain_maker
20.09.08, 13:49
1. Für Scripte am besten immer absolute Pfade verwenden

2.
man su

-c, --command=COMMAND
gib einen einzelnen BEFEHL an die Shell

3. "Komplexe" Befehle (mit Parametern) quoten.

smartysmart34
21.09.08, 09:46
Danke, das war's. Scripte schreibe ich doch eher selten ;-)
Gruß und schönes Wochenende,
Martin