Was ist in VirtualBox die beste Möglichkeit, ein Verzeichnis zwischen einem OS X-Host und einem Ubuntu-Gast freizugeben?
- Host: Mac OS X 10.7.3
- Gast: Ubuntu 12.04
- Der Gast hat ein freigegebenes Verzeichnis über die VirtualBox-Einstellungen mit Access = Full und Auto-Mount = Yes gemountet .
Das Problem mit diesem Setup ist unten dargestellt. In meinem freigegebenen Verzeichnis kann ich die Berechtigungen überhaupt nicht ändern (kein Fehler, bei dem Berechtigungen verweigert wurden, aber sie werden einfach nicht wirksam).
Ubuntu 12.04 (Gast):
% ls -l
total 0
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 1
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 10
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 2
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 3
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 4
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 5
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 6
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 7
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 8
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 9
Mac OS X 10.7.3 (Host):
$ ls -l
total 0
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 1
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 10
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 2
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 3
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 4
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 5
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 6
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 7
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 8
-rw-r--r-- 1 <my-mac-user> staff 0 Apr 17 21:56 9
Wenn ich am Gast chmod, ändert sich nichts:
% chmod +x 1 | ls -l 1 # guest
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 1
Wenn ich auf dem Host chmod, ändert es sich auf dem Host, aber nicht auf dem Gast:
$ chmod +x 1 | ls -l 1 # host
-rwxrwx--x 1 <my-mac-user> staff 0 Apr 17 21:56 1
% ls -l 1 # guest
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 1
virtualbox
permissions
mac
jmdeldin
quelle
quelle
sudo mount.vboxsf -o umask=002,gid=1000,uid=1000 src /media/sf_src
, dass die umask der Wert desumask
Benutzers ist, uid und gid vonid <user>
,src
der Name der VBox-Freigabe und/meida/sf_src
der gewünschte Einhängepunkt.Antworten:
Ich habe es herausgefunden!
Reproduzieren:
Führen Sie auf einem Terminal
umask && id
den normalen Benutzer aus, um Folgendes zu erhalten:sudo mkdir -p /media/sf_src # src is the shared directory
So hängen Sie das
src
Verzeichnis als Test ein:Bearbeiten
/etc/fstab
Sie die folgenden Elemente und fügen Sie sie hinzu, um sie beim Anmelden automatisch bereitzustellen :quelle
/sbin/mount.vboxsf
es sich um einen baumelnden Symlink handelte! Löschen und dannln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf
das Problem gelöst! Die Installation der Gastzusätze konnte es wahrscheinlich nicht symbolisieren. Ich habe viel zu viel Zeit damit verbracht, das herauszufinden!Das Problem - Berechtigungsprobleme beim Zugriff von vbox / ubuntu auf ein freigegebenes OSX-Laufwerk
Das Ziel ist eine einfache Möglichkeit, Verzeichnisse zwischen Mac- und Ubuntu-Umgebungen freizugeben. Leider scheinen die Beispiele, die ich bisher gesehen habe, etwas komplexer zu sein, als sie tatsächlich sein müssen, und erklären nicht wirklich, was das eigentliche Problem ist, das gelöst werden muss. Ich werde versuchen, beide Probleme hier zu behandeln.
Die Umgebung ist ein Mac mit OSX 10.9.5, auf dem Virtual Box 4.3.16 Ubuntu-14.04.1 mit installierten Guest-Erweiterungen ausführt. September 2014 Zeug.
Ich denke, dass das gesamte Problem hier ist, dass die UID der Verzeichnisse auf dem Mac und in Ubuntu übereinstimmen muss.
Um auf eine Datei zuzugreifen, muss sie entweder Eigentümer oder Mitglied der Gruppe sein, der sie gehört. Und da der Zugriff tatsächlich auf der ID-Nummer der Gruppe und nicht auf dem Gruppennamen basiert, muss auf beiden Seiten eine gemeinsame Gruppennummer erstellt werden, zu der die Benutzer gehören.
Genau das leistet die folgende Lösung. Lassen Sie sich nicht von der Länge des Geschriebenen in die Irre führen, es ist eigentlich sehr einfach. Es gibt nur sehr viele Beispiele dafür, was los ist.
Ich werde hier in diesem Dokument zwischen OSX- und VBOX- Konsolen wechseln (Mac und Virtual-Box / Ubuntu) - stellen Sie sicher, dass Sie verstehen, in welchem Fenster Sie sich befinden.
Letzte Anmerkung: Die unten gezeigte Lösung basiert auf der Einrichtung einer gemeinsamen Gruppen-ID zwischen der OSX- und der Ubuntu-Umgebung, damit die Dateiberechtigungen funktionieren. Es kann andere, modernere Lösungen geben. Dieser ist wirklich einfach und verständlich und basiert auf einfachen, schmucklosen Installationen.
OSX: —————
Beachten Sie, dass dies auf einem neuen 10.9.5 Mac ohne Verbindung zu einem Unternehmensnetzwerk und nur mit aktueller Software durchgeführt wurde. Das ist so einfach wie es nur geht.
Als ich die Standardinstallation auf dem Mac durchgeführt habe, ist joe_public der Administrator und seine UID wurde auf 501 gesetzt .
Beachten Sie, dass die uid ist 501 - dies ist die Standardeinstellung erste Konto - ID auf OSX - nichts Besonderes
Ich habe einige Verzeichnisse erstellt, die ich auf der Mac-Seite freigeben möchte. Beachten Sie, dass ich sie aus Sicherungsgründen nicht in mein Benutzerverzeichnis verschoben habe.
VBOX: ——————
Einfache standardmäßige Installation von Virtual Box und Ubuntu - Auch hier ist joe_public der Standardadministrator, der bei der Installation von Ubuntu erstellt wurde.
Bitte beachten Sie noch einmal, dass der Namensraum zwischen OSX und Ubuntu völlig anders ist. Es gibt hier absolut keine Beziehung zwischen den beiden Namen.
Erstellt drei Bereitstellungspunkte mit der GUI " Einstellungen -> Freigegebene Ordner" von Virtual Box .
ANMERKUNG: Ich musste meine Sitzung tatsächlich neu starten, damit alle diese Einhängepunkte angezeigt wurden.
Beachten Sie, dass die GID für diese 999 ist - dies ist die Vboxsf- Gruppe.
Dies wurde von Virtual Box Version 4.3.16 für uns automatisch vergeben. In der vbox-Dokumentation wird gezeigt, wie Sie dies ändern können, wenn Sie den Pfad manuell über die Befehlszeile einhängen, aber wer wird sich daran erinnern? Übernehmen Sie einfach die Standardeinstellungen, die die GUI für uns erzwingt.
Aber es funktioniert nicht (an diesem Punkt erwartet - das ist, was wir versuchen zu lösen)
Beachten Sie, dass joe_public zu diesem Zeitpunkt kein Mitglied dieser vboxsf- Gruppe ist - und das wird ein Problem sein, bis wir es beheben. Zu Ihrer Information: Dies sind die Standardgruppen, die dem Konto bei seiner Erstellung zugewiesen werden.
Also, was haben wir zu diesem Zeitpunkt (wir haben noch nichts getan, um es zu beheben)
Wir wollen nicht das Gid des Benutzers joe_public auf beiden Seiten ändern , da dies auf bereits installierten Systemen ärgerlich ist und dies für andere Benutzer nicht löst. Die einfachste Lösung besteht darin, eine passende Gruppen-ID - vboxsf - auf der Mac-Seite zu erstellen und sicherzustellen, dass joe_public auf beiden Seiten Mitglied davon ist.
Machen Sie joe_public also immer noch auf vbox / ubuntu zu einem Mitglied der 999 vboxsf- Gruppe
Ich glaube, ich habe mich von meinem Konto abgemeldet und mich hier wieder angemeldet, nachdem ich dies getan habe.
OSX: —————
Jetzt müssen wir eine vboxsf- Gruppe auf dem Mac erstellen . Ich bezweifle, dass der Name hier tatsächlich einen Unterschied macht - es ist die 999- Gruppen-ID, die wichtig ist. Denken Sie daran, dass die Namensräume des Verzeichnissystems (sowie die Benutzernamen) zwischen dem Host- und dem VM-Betriebssystem unterschiedlich sind. Aber nur um das Leben gesund zu machen, nennen wir es alle vboxsf auf dem Mac. Dieselbe Überlegung, warum joe_public auf beiden Seiten einen Benutzernamen verwendet.
OSX verfügt nicht wie Linux über einen einfachen Befehl zum Hinzufügen von Gruppen. Verwenden Sie dazu den Befehl dscl in mehreren Schritten. Weitere Informationen hierzu finden Sie in der Dokumentation zu Mac OS. Beachten Sie, dass wir die Gruppe vboxsf erstellen und dieser Gruppe hier joe_public hinzufügen.
An diesem Punkt sollten wir also haben
Der Beweis ist, ob es funktioniert - das ist der nächste Schritt
VBOX: ——————
cd in unser verzeichnis und berühre eine datei
Überprüfen Sie, ob wir eine Datei erfolgreich erstellt haben.
OSX: —————
VBOX: ——————
Es scheint alles zu funktionieren ..
VBOX: —————— SCHLUSSPRÜFUNG
Was wir hier überprüfen, ist, dass diese ganze Sache von dem Benutzer joe_public abhängt , der ein Mitglied der vboxsf- Gruppe ist - und der einfachste Weg ist, joe_public aus der Gruppe zu entfernen
Entfernen des Benutzers joe_public aus der Gruppe vboxsf
Wenn wir sehen, ob wir auf unser Verzeichnis zugreifen können, können wir das nicht. Dies beweist, dass es sich um ein Gruppenberechtigungsproblem handelt
Fügen Sie den Benutzer wieder zu vboxsf hinzu
Es funktioniert wieder
VBOX: - EIN MEHR PROBLEM - Symbolische Links in der vbox -------
Wenn Sie nach / media / sf_shared gehen , werden Sie feststellen, dass symbolische Links in freigegebenen Verzeichnissen einfach nicht funktionieren. Dies ist ein wirklich großes Problem, wenn Sie versuchen, eine vollständige Linux-Entwicklungsumgebung auf einem gemeinsam genutzten Laufwerk einzurichten.
Standardmäßig werden symbolische Links auf virtuellen Boxfreigaben nicht unterstützt. Unten finden Sie Erklärungen. Im Grunde genommen sind symbolische Links eine Sicherheitslücke, die in Virtual Box "behoben" wurde, indem die Unterstützung für sie im 4.1.8-Zeitrahmen (2011) deaktiviert wurde. Ich laufe 4.3.16 hier ...
https://www.virtualbox.org/ticket/10085
http://ahtik.com/blog/fixing-your-virtualbox-shared-folder-symlink-error/
Glücklicherweise gibt es eine Hintertür, die es über den VBoxManage- Befehl des Hosts wieder aktiviert . Bitte haben Sie wie immer Verständnis für die Sicherheitslücken, die Sie möglicherweise öffnen. Ich arbeite auf einem eigenständigen Entwicklungscomputer, daher scheint dies kein Problem zu sein.
OSX: ------------
Hinweis: Ubuntu ist der Name meines virtuellen Computers und shared ist der Name des freigegebenen Verzeichnisses.
Sie können den VM-Namen folgendermaßen abrufen:
Und der Name des freigegebenen Ordners, entweder über die Virtual Box-Benutzeroberfläche oder
Ich habe hier das gesamte virtuelle Box-System neu gestartet und nicht herausgefunden, welche Mindestanforderungen es erfüllen muss.
Um dies zu testen, kehren Sie zu Ihrem vbox-Fenster zurück
VBOX: ---------
Kein Fehler - und zu überprüfen
OSX: ----------
Und zurück auf der Mac-Seite - nur um zu beweisen, dass alles funktioniert
Bitte beachten Sie, dass ich dies nur auf einem OSX-Host und einem Ubuntu Virtual Box-Client getestet habe. Die oben aufgeführten Verweise scheinen darauf hinzudeuten, dass möglicherweise ein Problem beim Ausführen eines Windows-basierten Hosts vorliegt.
ÜBUNG LINKS FÜR DEN STUDENTEN ——————
Der Vorteil der oben aufgeführten Methode besteht darin, dass sie auf einem eigenständigen Computer ohne Netzwerkzugriff ausgeführt werden kann. Aber wenn Sie darüber nachdenken, muss dieses Problem mit der Namensangabe ein häufiges Problem für heterogene Computerumgebungen sein.
Welche anderen Lösungen sind verfügbar, wenn Lösungen für dieses Problem verfügbar sind? - Möglicherweise können Dinge wie Active Directory (ein Microsoft-Produkt) und dergleichen Abhilfe schaffen. Es wäre interessant, eine Sammlung dieser Lösungen zu erhalten und dort verschiedene Merkmale und Kompromisse zu vergleichen.
quelle
Für mich war alles was ich tun musste:
Das war genug für mich, um auf die freigegebenen Ordner zuzugreifen. Der Ordner verfügt über eine Gruppe von vboxsf. Der Benutzer muss nur dieser Gruppe zugewiesen werden, um Zugriff zu erhalten. Wenn Sie einen strengeren oder besser kontrollierbaren Zugriff festlegen müssen, müssen Sie möglicherweise die Schritte zum manuellen Mounten mit den richtigen Benutzer-IDs ausführen.
Bei mir hat die fstab-Lösung nicht funktioniert und den Rechner nicht richtig gebootet.
quelle
Nachdem Sie einen freigegebenen Ordner in den Virtualbox-Einstellungen erstellt haben, wird er von Ubuntu beim nächsten Systemstart automatisch bereitgestellt (auf Ihrem Desktop wird ein Symbol angezeigt).
Wenn Sie jedoch kein Root-Konto verwenden, haben Sie keine Berechtigung, darauf zuzugreifen. Sie müssen Ihr Benutzerkonto zu einer Benutzergruppe mit dem Namen "vboxsf" hinzufügen:
Dann abmelden und erneut anmelden. Sie können jetzt auf den freigegebenen Ordner zugreifen.
quelle
Seit VirtualBox v4.0 ist es einfach, diese Berechtigungsprobleme zu lösen! Sie haben keine Sorgen zu machen brauchen
mkdir
,mount
,chmod
,umask
etc. , auf die automatische montierten freigegebene Ordner (die in erscheinen Zugriff/media
mitsf_
standardmäßig Präfixe), gibt es nur eine Sache , die Sie tun müssen: Fügen Sie Ihren Benutzernamen an dievboxsf
Gruppe übersudo usermod -a -G vboxsf [username]
.Zur Vereinfachung möchten Sie möglicherweise auch symbolische Links zu diesen freigegebenen Ordnern in Ihrem
home
Ordner erstellen (zln -s /media/sf_Stuff ~/Stuff
. B. ).Quelle: http://www.virtualbox.org/manual/ch04.html#sf_mount_auto
quelle
Ich habe dies gefunden, getestet und es hat in Ubuntu und Xubuntu funktioniert, nur die automount-Funktion hat bei mir nicht funktioniert
I. Installieren Sie Guest Additions
Zunächst müssen die Guest Additions der VirtualBox auf dem Host-System installiert werden:
Wählen Sie im Menü der VitualBox: Geräte -> Gastzugaben installieren…
Es wird eine neue ISO für das Hostsystem bereitgestellt. Eine neue CD erscheint in Ubuntu (oder mounten Sie sie). Führen Sie als Root das Installationsskript VBoxLinuxAdditions-x86.run (da es sich um einen Intel-basierten Mac handelt) in einem Terminalfenster aus:
Wahrscheinlich werden Sie aufgefordert, Ubuntu neu zu starten.
Das Installieren der Guest Additions hat viele Vorteile, wie die Übernahme der Bildschirmauflösung (Ihre Fenstergröße ist die Systemauflösung, dh keine Bildlaufleisten), den einfachen Mausmodus (Sie müssen nicht die linke Befehlstaste drücken, um den Mauszeiger loszulassen) und das, wonach wir suchen für freigegebene Ordner.
II. Freigegebenen Ordner erstellen
Das Ziel ist es, auf einen freigegebenen Ordner zuzugreifen. Dies ist eine einfachere Möglichkeit, als sshd oder Samba zu verwenden.
Wählen Sie im Menü der VitualBox: Geräte -> Freigegebene Ordner ...
III. Mount Shared Folder
Hängen Sie den erstellten freigegebenen Ordner in einen Ordner mit Berechtigungen für Ihren Benutzer ein. Lassen Sie uns ein Terminal-Fenster unter Ubuntu öffnen und:
Erstellen Sie einen Ordner, in dem der freigegebene Ordner bereitgestellt wird. (Überspringen Sie diesen Schritt, wenn Sie bereits einen Ordner dafür haben.)
zB (in / tmp)
Holen Sie sich Ihre Benutzer-ID:
Das Ergebnis wird ungefähr so aussehen:
Die UID meines Benutzers ist also 1000. Hängen Sie den freigegebenen Ordner SHARED_FOLDER_NAME in den Ordner MOUNTED_FOLDER ein, dessen Eigentümer der Benutzer mit der UID USER_ID als Root ist:
z.B
Wenn Sie den Parameter uid angeben, können Sie in den freigegebenen Ordner für Ihren Benutzer schreiben. Der bereitgestellte Ordner MOUNTED_FOLDER (z. B. / tmp / share) enthält Dateien aus dem freigegebenen Ordner auf Ihrer Mac-Festplatte. Es ist auch möglich, in den Freigabeordner zu schreiben. Optional kann ein freigegebener Ordner beim Start der virtuellen Maschine automatisch bereitgestellt werden. Fügen Sie der Datei / etc / fstab die folgende Zeile hinzu (als root, zB sudo vim / etc / fstab):
z.B
Wobei sich die Werte für uid und gid in der Ausgabe des Befehls id befinden (siehe Schritt 2 für ein detailliertes Beispiel). Der freigegebene Ordner ist auch nach einem Neustart der virtuellen Maschine verfügbar.
Quelle: http://www.valibuk.net/2009/03/accessing-mac-os-x-harddrive-from-ubuntu-in-virtualbox-via-shared-folders/
quelle
Host-Betriebssystem : macOS
VM (Gast) Betriebssystem : Ubuntu Server 16.04.5 LTS
VirtualBox v5.2.18
Sowohl das Host-Betriebssystem als auch das Gast-Betriebssystem müssen denselben Benutzer haben (weiter unten im Text: Benutzername ).
Stufe 1: Installieren der VirtualBox-Gastzusätze :
1.1. Suchen Sie die VirtualBox-Gastzusätze.
1.2. Starten Sie die VM
1.3. Klicken Sie auf das CD-Symbol in der unteren rechten Taskleiste
1.4. Wählen Sie "Choose disk image ..." und suchen Sie nach VBoxGuestAdditions.iso
1.5. Im Gast-Terminal-Typ (Sie können dies auch vom Host-Terminal aus tun, wenn Sie SSH verwenden):
Stufe 2: Setup für freigegebene Ordner:
2.1. Erstellen Sie Regeln in VM:
Settings > Shared Folders
Add new port forwarding rule
oben rechts im Fenster auf die grüne Schaltfläche.Auto-mount
undMake Permanent
2.2. Um einen freigegebenen Ordner bereitzustellen,
/opt
müssen Sie einenshared_folder_dir
Unterordner erstellen und die entsprechenden Berechtigungen dafür festlegen:2.3. Fügen Sie der vboxsf- Gruppe einen Benutzernamen hinzu :
2.4. Starten Sie die VM neu, um die Änderungen zu übernehmen:
Stufe 3: Automatische Montage
host_folder
in/opt/shared_folder_dir
:3.1. Ändern Sie VMs /etc/rc.local:
und platziere folgendes rechts oben
exit 0
:3.2. Starten Sie die VM neu, um die Änderungen zu übernehmen:
Siehe auch
quelle
Von /ubuntu//a/171357/476506
Der obige Befehl gewährt "user" Zugriff auf den freigegebenen Ordner.
quelle