Ist es möglich, Software für virtuelle Maschinen als Nicht-Root-Benutzer zu installieren und auszuführen?
Welche VMs können ohne Root-Zugriff installiert werden?
Wenn es nicht möglich ist, welche virtuelle Maschine mit dem geringsten Gewicht für einige VMs zu verwenden, auf denen Windows XP SP3 ausgeführt wird?
Für KVM benötigen Sie Zugriff auf das Gerät
/dev/kvm
. Wenn Ihr Benutzer auf diesem Gerät lesen und schreiben kann, können Sie als Benutzer KVM-basierte virtuelle Maschinen ausführen.In den meisten Distributionen haben Mitglieder der
kvm
Gruppe Zugriff auf dieses Gerät. Sie müssen also lediglich Ihren Benutzer zurkvm
Gruppe hinzufügen .Für die meisten anderen beschleunigten Technologien müssen Kernelmodule geladen sein (einschließlich Virtualbox und VMWare). Dies erfordert mit ziemlicher Sicherheit einen Zugriff auf Root-Ebene.
Sie können nicht beschleunigte Virtualisierungstechnologien wie jeden Benutzer ausführen. Zum Beispiel qemu im nicht beschleunigten Modus. Beachten Sie, dass es im Vergleich zur beschleunigten Virtualisierung sehr langsam sein wird.
quelle
Benutzermodus Linux ist eine Linux-Virtualisierungslösung, die vollständig im Benutzerbereich ausgeführt wird. Es sind keine Root-Berechtigungen erforderlich.
Es kann jedoch nur einen Linux-Gast auf einem Linux-Host ausführen. Daher ist es nicht geeignet, wenn Sie etwas anderes ausführen möchten.
quelle
Eine virtuelle Maschine benötigt einen recht einfachen Zugriff auf den Prozessor (und andere Hardware), um effizient zu sein. Daher wird keine leistungsfähige VM-Software angezeigt, die nicht als Root installiert werden kann.
Bei leichten virtuellen Maschinen wird die Leichtigkeit nur durch die Einbeziehung der erforderlichen Funktionen erreicht. Dies erfordert einige Kenntnisse über das Betriebssystem, das ausgeführt werden soll. Daher unterstützen Open-Source -Lightweight-VMs ( Plex86 , LilyVM ) nur Open-Source-Betriebssysteme. Nach dieser Logik ist Microsoft Virtual PC möglicherweise leichter als VirtualBox / VMWare / etc. aber ich weiß es wirklich nicht. VirtualBox ist als Open Source verfügbar, ist recht benutzerfreundlich und hat für meine Zwecke immer gereicht (aber ich habe andere ausprobiert).
quelle
Virtualbox 4.0.8 muss als Root installiert werden, danach können Benutzer eigene VMs erstellen. Sie müssen nur ein Mitglied der Gruppe sein
vboxusers
usermod -G vboxusers USERNAME
Schauen Sie sich diesen Link an , einen schönen Artikel, wie man es kopflos laufen lässt, direkt aus der Shell. Ich stelle auch fest, dass es das RDP-Protokoll unterstützt, was bedeutet, dass Sie nur
rdesktop
eine Verbindung herstellen können.quelle
QEmu ist dazu in der Lage. Ich habe es mehrmals gemacht. Nicht sehr performant
quelle
1) Drei Zeilen antworten
Um meine vorgefertigten Images / kompilierten Versionen von qemu zu verwenden, laden Sie sie hier herunter und dekomprimieren Sie sie:
Sie können auch mein Debian 8-Bild (1.6G) von hier herunterladen :
und endlich rennen
Sie sollten ein funktionierendes Debian 8 im Textmodus haben, bei dem der SSH-Port im Host-Gast an Port 22222 geöffnet ist. Sie können sich mit dem Benutzer "root" und dem Kennwort "root" anmelden.
2) Längere Antwort, mache diese Bilder selbst
QEMU ist in der Tat eine Lösung, mit der ich mein eigenes Linux-Image auf einem Server installieren kann, auf dem ich keinen Root-Zugriff hatte. Es ist sehr nützlich, ich verwende es zum Beispiel, um ssh umzukehren, ohne mein Hauptbenutzer-Passwort preiszugeben, oder zu Bildungszwecken. Da Sie KVM jedoch nicht für eine echte Virtualisierung ohne Root-Konto verwenden können, können Sie nur eine Emulation durchführen, die recht ineffizient sein kann (bei Befehlszeilenvorgängen habe ich den Overhead jedoch nie wirklich gesehen).
2.1) Pack
qemu
Hier ist die Beschreibung, wie ich vorgehen soll. Der erste Schritt ist, qemu "portabel" zu machen, dh auf dem Server ohne Root-Zugriff nutzbar zu machen. Um dies zu tun, haben Sie mehrere Methoden, ich werde versuchen, sie vorzustellen, so dass Sie die von Ihnen bevorzugte auswählen können.
2.1.a) Methode 1: Laden Sie die verfügbare .deb herunter
Diese Lösung lässt sich sehr schnell anwenden (im Grunde genommen, wenn sie funktioniert, erhalten Sie sie mit einem Befehl), aber da mein Skript möglicherweise fehlerhaft ist / eine gewisse Lib vergisst, kann es ziemlich lang sein, alle Binärdateien manuell herunterzuladen ... Ein weiterer Vorteil dieser Methode ist, dass Sie sie im Nicht-Root-Modus direkt auf dem Server ausführen können. Die Idee, qemu-Binärdateien hier abzurufen, ist, die .deb / .rpm-Datei (von apt oder von den Online-Websites, auf denen .deb gehostet wird) abzurufen, sie zu extrahieren, die Bibliotheksabhängigkeiten zu überprüfen
ldd
und alle.deb
Abhängigkeiten herunterzuladen , die vorhanden sind nicht bereits auf dem Computer vorhanden, um sie zu extrahieren (die.so
Dateien). Da es ziemlich lang und sich wiederholend sein kann, habe ich ein kleines Skript erstellt, aber wenn Sie mutig sind, können Sie das alles manuell tun ... Es dauert nur einige Zeit. Um es zu verwenden, speichern Sie dieses Skript in einer Dateicreate_qemu_binaries.sh
:und starte es mit:
Es funktioniert alles einwandfrei. Am Ende sollten Sie in dem Ordner
./qemu_extract/qemu_packed/
eine Dateiqemu-system-x86_64
(die Hauptbinärdatei), einen Ordnerlib
(die Bibliotheken, mit denen Sie arbeiten müssenqemu
) und einen Ordner habenpc-bios
, eine Reihe von Dateien,qemu
die ausgeführt werden müssen. Sie können dannqemu
mithilfe von ausführen (vergessen Sie nicht, durch Ihr Dateisystem-Image zu ersetzen):Genießen ! (Wenn das Skript bei Ihnen nicht funktioniert, zögern Sie nicht, mich zu fragen. Ich habe es nur auf zwei Computern getestet und kann es kostenlos entfernen,
redir
wenn Sie keine SSH-Weiterleitung zwischen Host und Vermutung benötigen.)2.1.b) Methode 2: Wenn Sie auf einen Computer mit Root-Zugriff zugreifen
Die erste Methode benötigt einen Computer mit Root-Zugriff (oder
qemu
installiert). Zuerstqemu
mit etwas wie installierenund dann finde den absoluten Pfad von qemu:
Erstellen Sie dann einen Ordner, um es abzulegen:
und erhalte die Liste der mit qemu verknüpften Bibliotheken:
Jetzt müssen wir das BIOS von qemu verwenden lassen. Die Datei ist auf Ihrem System verfügbar, aber ich weiß nicht, warum sie sich in verschiedenen Ordnern befindet. Daher ist es meiner Meinung nach einfacher, sie aus den Quellen abzurufen:
Nun sollte es funktionieren, Sie können diese Dateien auf den Nicht-Root-Computer kopieren und einfach in
qemu
der folgenden Zeile ausführen (vergessen Sie nicht, das Image zu ersetzen):2.1.c) Methode 3: Aus den Quellen
Sie können die Quellen auch kompilieren, aber wenn Sie nicht alle Bibliotheken installiert haben, kann es schwierig sein, die Verwendung eines root-Computers zum Kompilieren von qemu zu vermeiden. Aber ich denke, es ist ein bisschen zuverlässiger, wenn die beiden oben genannten Methoden nicht funktionieren. Sobald es kompiliert ist, rufen Sie die ausführbare Datei ab und führen Sie den gleichen Trick wie oben aus, um die Bibliotheken (unter Verwendung von
ldd
sollten sich alle Bibliotheken bereits auf dem Computer befinden) und die PC-BIOS-Datei abzurufen. Führen Sie es erneut mit demselben Befehl aus.2.3) Erstellen Sie Ihr eigenes Bild
Wenn Sie kein vorgefertigtes Dateisystem-Image verwenden möchten, befolgen Sie einfach die zahlreichen Tutorials mit den obigen Befehlen anstelle von
qemu/qemu-system-x86_64
! NB: Wenn Sie auchqemu-img
Images als Nicht-Root erstellen möchten, gehen Sie wie oben beschrieben vor!Genießen !
NB: Wenn Sie die Curses-Anzeige verwenden möchten, um sie auf einem Server ohne GUI auszuführen, sollten Sie in Ihrem Image eine Zeile in der Boot-Option hinzufügen, damit der Frame-Puffer nicht aktiviert wird in
/etc/default/grub
:(Das Wichtigste ist das Letzte, ich bin mir nicht sicher, ob es gebraucht wird). Ebenso gut wie
damit grub im textmodus bleibt. Sie können auch den Textmodus in systemd aktivieren, wenn dies nicht ausreicht.
quelle