it-swarm.com.de

So lassen Sie das Gastbetriebssystem Symlinks aus dem freigegebenen Ordner folgen

Ich habe Ubuntu Desktop als mein Hauptbetriebssystem und Ubuntu Server als mein Gastbetriebssystem in VirtualBox 4.2.16.

Ich habe einen freigegebenen Ordner mit dem Namen/shared erstellt und mehrere Symlinks zu verschiedenen Ordnern in meinem Hauptbetriebssystem eingefügt. Natürlich werden auf meinem Gastbetriebssystem nur fehlerhafte Symlinks angezeigt, da diese Speicherorte nur im Hauptbetriebssystem vorhanden sind.

Wie kann ich meinem Gastbetriebssystem den tatsächlichen Inhalt anzeigen lassen?

Das Erstellen eines weiteren freigegebenen Ordners ist keine Option.

18
dev9

Es ist ein Problem in virtualBox und hat mit Sicherheit zu tun. Vor 4.1.8 funktionierte symlinks, war aber stark fehlerhaft. Und die Entscheidung wurde getroffen, um Symlink-Unterstützung zu entfernen.

Siehe diesen Kommentar :

Die symbolische Linkerstellung aus einem Gast wurde in VirtualBox 4.1.8 aus Sicherheitsgründen deaktiviert. Ein Gast könnte symbolische Links erstellen, die außerhalb des zugewiesenen Host-Verzeichnisses verweisen. Dies hat nichts mit einem ext3/ext4-Fehler zu tun. Und der Gast kann immer noch Symlinks lesen, die auf dem Host erstellt wurden.

Entschuldigung für die späte Aussage.

Wenn Sie tun

 VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1

Dann kann Ihr Gast wieder Symlinks erstellen. Aus Sicherheitsgründen (siehe oben) ist dies jedoch standardmäßig deaktiviert. Die Korrektur, um gefährliche Symlinks vom Gast zu verhindern, ist sehr kompliziert. Daher haben wir beschlossen, keinem Gast das Erstellen von Symlinks zu gestatten, um das Sicherheitsproblem zu umgehen.

(Ich habe mir erlaubt, einen Fehler im Kommentar zu beheben;))

  • und beachten Sie auch, dass Sie vBox neu starten benötigen, damit die Änderung aktiviert wird.
23
Rinzwind

Eine kurze Antwort ist, dass dies nicht möglich ist.

Das folgende ticket auf virtualbox.org hat einige Klarstellungen:

Diese Änderung ist beabsichtigt und behebt ein Problem mit der aktuellen Implementierung freigegebener Ordner. Aus Gründen der Kompatibilität mit Gastbetriebssystemen, die keine Ahnung haben, was ein Symlink ist, wird er derzeit auf der Host-Seite interpretiert. Dies bedeutet, dass bei Gastbetriebssystemen, die wissen, was ein Symlink ist, ein unerwartetes Verhalten auftritt (z. B. wenn ein Symlink in einem freigegebenen Ordner eingebunden ist) at/foo würde auf/bar/file verweisen, es ist unmöglich, auf der Host-Seite das Richtige zu tun.

Es ist natürlich reparierbar, aber alles andere als trivial, da die Trennung der Symlink-Verarbeitung zwischen der Seite des Gastbetriebssystems und der Seite des Hosts neu gestaltet werden muss. Dies kann nicht schnell erledigt werden, daher war die einzige Option die Deaktivierung der Symlink-Erstellung. Zu viele Benutzer/Anwendungen wurden von dem nicht standardmäßigen Verhalten überrascht.

Quelle

1
Sylvain Pineau