W VirtualBox jaki jest najlepszy sposób udostępniania katalogu między hostem OS X a gościem Ubuntu?
- Host: Mac OS X 10.7.3
- Gość: Ubuntu 12.04
- Gość ma wspólny katalog zamontowany za pomocą ustawień VirtualBox z Access = Full i Auto-Mount = Yes .
Problem z tą konfiguracją pokazano poniżej. W moim udostępnionym katalogu nie mogę w ogóle zmienić uprawnień (nie jest to błąd odmowy uprawnień, ale po prostu nie działają).
Ubuntu 12.04 (gość):
% 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
Jeśli przejdę do gościa, nic się nie zmieni:
% chmod +x 1 | ls -l 1 # guest
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 1
Jeśli chmod na hoście, zmienia się na hoście, ale nie na gościu:
$ 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
źródło
źródło
sudo mount.vboxsf -o umask=002,gid=1000,uid=1000 src /media/sf_src
, gdzie umask jest wartościąumask
użytkownika, od której są identyfikatory UID i GIDid <user>
,src
jest nazwą udziału VBox i/meida/sf_src
pożądanym punktem montowania.Odpowiedzi:
Zrozumiałem!
Powielać:
Z terminala uruchom
umask && id
jako zwykły użytkownik, aby uzyskać coś takiego:sudo mkdir -p /media/sf_src # src is the shared directory
Aby zamontować
src
katalog jako test:Aby automatycznie zamontować go podczas logowania, edytuj
/etc/fstab
i dodaj:źródło
/sbin/mount.vboxsf
to wiszące dowiązanie symboliczne! Usunięcie go, a następnieln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf
rozwiązanie problemu! Instalacja dodatków gości prawdopodobnie nie była w stanie jej dowiązać symbolicznie. Spędziłem zdecydowanie za dużo czasu, zastanawiając się nad tym!Problem - problemy z uprawnieniami w vbox / ubuntu uzyskujące dostęp do współdzielonego dysku OSX
Celem jest prosty sposób udostępniania katalogów między środowiskami Mac i Ubuntu. Niestety przykłady, które do tej pory widziałem, wydają się nieco bardziej skomplikowane niż powinny być i nie wyjaśniają, jaki prawdziwy problem należy rozwiązać. Spróbuję rozwiązać oba te problemy tutaj.
Środowisko tutaj to Mac z systemem OSX 10.9.5, z Virtual Box 4.3.16 wykonującym Ubuntu-14.04.1 z zainstalowanymi rozszerzeniami Guest. Rzeczy z września 2014 r.
Myślę, że cały problem polega na tym, że identyfikator użytkownika katalogów na komputerze Mac i w Ubuntu musi się zgadzać - Domyślny identyfikator użytkownika przypisany do użytkownika i grup różni się w OSX i Ubuntu, i na tym właśnie polega problem.
Aby uzyskać dostęp do pliku, należy go posiadać lub być członkiem grupy, która go posiada. A ponieważ dostęp jest w rzeczywistości oparty na numerze identyfikacyjnym grupy, a nie na nazwie grupy, wystarczy stworzyć wspólny numer grupy po obu stronach, do którego należą użytkownicy.
Właśnie to robi poniższe rozwiązanie. Nie daj się zwieść długości napisanych treści, w rzeczywistości jest to bardzo proste. Jest tylko wiele przykładów tego, co się dzieje.
Będę przerzucać między konsolami OSX i VBOX tutaj (mac i virtual-box / ubuntu) w tym dokumencie - upewnij się, że rozumiesz, w którym oknie jesteś.
Uwaga końcowa: Rozwiązanie pokazane poniżej opiera się na ustanowieniu wspólnego identyfikatora grupy między środowiskami OSX i Ubuntu, tak aby uprawnienia do plików działały. Mogą istnieć inne, bardziej nowoczesne rozwiązania. Ten jest naprawdę prosty i zrozumiały i działa na prostych, pozbawionych ozdób instalacjach.
OSX: —————
Zwróć uwagę, że zostało to zrobione na nowym komputerze Mac 10.9.5, bez niczego, nie podłączonego do sieci korporacyjnej, nic nadzwyczajnego na nim uruchomionego oprócz oprogramowania podstawowego. To jest tak proste, jak to możliwe.
Kiedy zrobiłem domyślną instalację na komputerze Mac, joe_public jest użytkownikiem administracyjnym, a jego identyfikator użytkownika został ustawiony na 501 .
Zauważ, że uid to 501 - jest to domyślny pierwszy identyfikator konta w OSX - nic specjalnego
Utworzyłem kilka katalogów, które chcę udostępnić po stronie Maca - pamiętaj, że nie umieściłem ich w katalogu użytkowników ze względu na kopię zapasową.
VBOX: ——————
Prosta domyślna instalacja wirtualnego boxa i Ubuntu - ponownie joe_public jest domyślnym administratorem utworzonym podczas instalacji Ubuntu.
Jeszcze raz zauważ, że przestrzeń nazw między OSX a Ubuntu jest zupełnie inna. Nie ma absolutnie żadnego związku między tymi dwoma nazwami.
Utworzono trzy punkty montowania, używając ustawienia Virtual Box -> GUI folderów współdzielonych.
UWAGA: Musiałem zrestartować moją sesję, aby pojawiły się wszystkie punkty montowania.
Zauważ, że gid dla nich to 999 - jest to grupa vboxsf .
Zostało to przypisane nam automatycznie przez Virtual Box w wersji 4.3.16. Dokumentacja vbox pokazuje, jak to zmienić, jeśli ręcznie zamontujesz ścieżkę za pomocą wiersza poleceń, ale kto to zapamięta - po prostu weź domyślne ustawienia, które narzuca nam GUI.
Ale to nie działa (oczekiwane w tym momencie - właśnie to próbujemy rozwiązać)
Zauważ, że w tym momencie joe_public nie jest członkiem tej grupy vboxsf - i będzie to stanowić problem, dopóki go nie naprawimy . FYI: Są to domyślne grupy przypisane do konta podczas jego tworzenia.
Więc co mamy w tym momencie (nie zrobiliśmy jeszcze nic, aby to naprawić)
Nie chcemy zmieniać identyfikatora użytkownika joe_public po obu stronach, ponieważ jest to uciążliwe dla już zainstalowanych systemów i nie rozwiązuje tego dla innych użytkowników. Najprostszym rozwiązaniem jest utworzenie pasującej grupy id - vboxsf - po stronie mac i upewnienie się, że joe_public jest jej członkiem po obu stronach.
Tak, nadal na vbox / Ubuntu, upewnij joe_public członkowi 999 vboxsf grupie
Wydaje mi się, że wylogowałem się z konta i wróciłem tutaj po tym, jak to zrobiłem.
OSX: —————
Teraz musimy utworzyć grupę vboxsf na komputerze Mac. Wątpię, czy nazwa faktycznie robi różnicę - ważny jest identyfikator grupy 999 . Pamiętaj, że przestrzenie nazw systemu katalogów (a także nazwy użytkowników) różnią się między systemem operacyjnym hosta a maszyną wirtualną. Ale żeby uczynić życie rozsądnym, wszyscy nazywamy to vboxsf na Macu . To samo powód, dla którego joe_public jest używana po obu stronach z nazwą użytkownika.
OSX nie ma prostej komendy dodawania grupy, podobnie jak linux - więc użyj komendy dscl, aby zrobić to w kilku krokach. Więcej informacji na ten temat znajduje się w dokumentacji systemu Mac OS. Zauważ, że tworzymy grupę vboxsf i dodajemy tutaj joe_public.
W tym momencie powinniśmy mieć
Dowodem na to jest, czy to działa - więc to kolejny krok
VBOX: ——————
cd do naszego katalogu i dotknij pliku
Sprawdź, czy plik został pomyślnie utworzony.
OSX: —————
VBOX: ——————
Wszystko wydaje się działać.
VBOX: —————— WERYFIKACJA KOŃCOWA
Sprawdzamy tutaj, że to wszystko zależy od tego, czy użytkownik joe_public jest członkiem grupy vboxsf - a najprostszym sposobem jest po prostu usunięcie joe_public z grupy
Usuwanie użytkownika joe_public z grupy vboxsf
Sprawdzanie, czy możemy uzyskać do niego dostęp do naszego katalogu - i nie możemy, a to dowodzi, że jest to problem z uprawnieniami grupowymi
Dodaj użytkownika z powrotem do vboxsf
Działa znowu!
VBOX: - JEDEN WIĘCEJ PROBLEMU - dowiązania symboliczne w vbox -------
Jeśli przejdziesz do / media / sf_shared , przekonasz się, że dowiązania symboliczne w udostępnionych katalogach po prostu nie działają. Jest to naprawdę duży problem, jeśli próbujesz skonfigurować pełne środowisko programistyczne dla systemu Linux na dysku współdzielonym.
Domyślnie dowiązania symboliczne nie są obsługiwane w udziałach wirtualnych pudełek. Poniżej wyjaśnienia. Zasadniczo, jak rozumiem, dowiązania symboliczne są luką w zabezpieczeniach, które zostały „naprawione” w Virtual Boxie poprzez wyłączenie ich obsługi w przedziale czasowym 4.1.8 (2011). Korzystam z 4.3.16 tutaj ...
https://www.virtualbox.org/ticket/10085
http://ahtik.com/blog/fixing-your-virtualbox-shared-folder-symlink-error/
Na szczęście istnieją tylne drzwi, aby je ponownie włączyć za pomocą komendy VBoxManage hosta . Jak zawsze, proszę zrozumieć luki w zabezpieczeniach, które możesz otwierać. Jestem na autonomicznej maszynie programistycznej, więc nie wydaje się to być problemem.
OSX: ------------
Uwaga: Ubuntu to nazwa mojego vm, a shared to nazwa udostępnionego katalogu.
Możesz uzyskać nazwę VM tak:
I nazwa folderów współdzielonych, albo poprzez GUI Virtual Box, albo
Ponownie uruchomiłem tutaj cały system wirtualnej skrzynki, nie ustaliłem minimalnych wymagań, które należy spełnić.
W każdym razie, aby to przetestować, wróć do okna vbox
VBOX: ---------
Bez błędów - i do weryfikacji
OSX: ----------
Z powrotem po stronie Mac - tylko po to, aby udowodnić, że wszystko działa
Uwaga: testowałem to tylko na hoście OSX i kliencie wirtualnym Ubuntu. Odniesienia wymienione powyżej wydają się wskazywać, że może występować problem z uruchomieniem hosta opartego na systemie Windows.
ĆWICZENIE LEWE DLA STUDENTA ———————
Zaletą powyższej metody jest to, że może ona działać na maszynie autonomicznej, bez dostępu do sieci. Ale jeśli się nad tym zastanowić, to kwestia nazwa-werset-id musi być częstym problemem wśród heterogenicznych środowisk komputerowych.
Jakie inne rozwiązania są dostępne tam, gdzie dostępne są rozwiązania tego problemu? - Rzeczy takie jak Active Directory (produkt Microsoft) i tym podobne mogą rozwiązać ten problem. Byłoby interesujące uzyskać zbiór tych rozwiązań i porównać tam różne funkcje i kompromisy.
źródło
Dla mnie wszystko, co musiałem zrobić, to:
To wystarczyło mi, aby uzyskać dostęp do udostępnionych folderów. Folder ma grupę vboxsf, użytkownik musi być przypisany do tej grupy, aby uzyskać dostęp. Jeśli chcesz ustawić bardziej ścisły dostęp lub bardziej kontrolowany dostęp, być może będziesz musiał przejść przez etapy ręcznego instalowania go za pomocą odpowiednich identyfikatorów użytkownika.
Dla mnie rozwiązanie fstab nie zadziałało i spowodowało nieprawidłowe uruchomienie komputera.
źródło
Po utworzeniu folderu współdzielonego w ustawieniach Virtualbox, Ubuntu automatycznie zainstaluje go dla ciebie przy następnym uruchomieniu systemu (zobaczysz ikonę na pulpicie).
Ale jeśli nie korzystasz z konta root, nie będziesz mieć dostępu do niego. Musisz dodać swoje konto użytkownika do grupy użytkowników o nazwie „vboxsf”:
Następnie wyloguj się i zaloguj ponownie. Możesz teraz uzyskać dostęp do udostępnionego folderu.
źródło
Od czasu VirtualBox v4.0 łatwo jest rozwiązać te problemy z uprawnieniami! Nie trzeba się martwić
mkdir
,mount
,chmod
,umask
, itd. Aby uzyskać dostęp do automatycznego zamontowany foldery współdzielone (które pojawiają się/media
zsf_
prefiksów domyślnie), jest tylko jedna rzecz, którą trzeba zrobić: Dodaj swoją nazwę użytkownika dovboxsf
grupy poprzezsudo usermod -a -G vboxsf [username]
.Dla wygody możesz także utworzyć dowiązania symboliczne do folderów współdzielonych w
home
folderze (npln -s /media/sf_Stuff ~/Stuff
.).Źródło: http://www.virtualbox.org/manual/ch04.html#sf_mount_auto
źródło
Znalazłem to, przetestowałem i działało w Ubuntu i Xubuntu, tylko funkcja automount nie działała dla mnie
I. Zainstaluj dodatki dla gości
Po pierwsze, konieczne jest zainstalowanie dodatków gości VirtualBox w systemie hosta:
Wybierz z menu VitualBox: Urządzenia -> Zainstaluj dodatki dla gości…
Montuje nowy ISO dla systemu hosta. Nowa płyta CD pojawi się w Ubuntu (lub zamontuj ją). Uruchom jako root skrypt instalacyjny VBoxLinuxAdditions-x86.run (ponieważ jest to komputer Mac z procesorem Intel) w oknie terminalu:
Prawdopodobnie zostaniesz poproszony o ponowne uruchomienie Ubuntu.
Instalacja dodatków dla gości ma wiele zalet, takich jak przyjęcie rozdzielczości ekranu (rozmiar okna to rozdzielczość systemowa, tj. Brak pasków przewijania), łatwy tryb myszy (nie trzeba naciskać lewego przycisku polecenia, aby zwolnić kursor myszy) i, czego szukamy dla udostępnionych folderów.
II. Utwórz folder współdzielony
Celem jest uzyskanie dostępu do folderu współdzielonego, co jest łatwiejszym sposobem niż użycie sshd lub Samba.
Wybierz z menu VitualBox: Urządzenia -> Foldery współdzielone ...
III. Zamontuj folder współdzielony
Zamontuj utworzony folder współdzielony w folderze z uprawnieniami dla użytkownika. Otwórzmy okno terminalu na Ubuntu i:
Utwórz folder, w którym zostanie zamontowany folder współdzielony. (Pomiń ten krok, jeśli masz już folder do tego.)
np. (w / tmp)
Uzyskaj identyfikator użytkownika:
Wynik będzie taki jak:
więc identyfikator użytkownika mojego użytkownika wynosi 1000. Zamontuj folder współdzielony SHARED_FOLDER_NAME w folderze MOUNTED_FOLDER z prawem własności dla użytkownika o identyfikatorze użytkownika UER_ID jako root:
na przykład
Określenie parametru uid umożliwia zapisywanie w folderze udostępnionym dla użytkownika. Zamontowany folder MOUNTED_FOLDER (np. / Tmp / share) zawiera pliki z folderu współdzielonego na dysku twardym komputera Mac. Możliwe jest również zapisywanie w folderze udostępniania. Opcjonalnie folder współdzielony można automatycznie zamontować na starcie maszyny wirtualnej. Dodaj następujący wiersz do pliku / etc / fstab (jako root, np. Sudo vim / etc / fstab):
na przykład
gdzie wartości uid i gid można znaleźć w danych wyjściowych komendy id (zobacz szczegółowy krok w kroku 2). Folder współdzielony będzie dostępny również po ponownym uruchomieniu maszyny wirtualnej.
Źródło: http://www.valibuk.net/2009/03/accessing-mac-os-x-harddrive-from-ubuntu-in-virtualbox-via-shared-folders/
źródło
System operacyjny : MacOS
VM (gość) System operacyjny : Ubuntu Server 16.04.5 LTS
VirtualBox v5.2.18
Zarówno system operacyjny hosta, jak i system operacyjny gościa muszą mieć tego samego użytkownika (dalej w tekście: nazwa użytkownika ).
Etap 1: Zainstaluj dodatki dla gości VirtualBox :
1.1 Znajdź dodatki dla gości VirtualBox,
1.2 Uruchom maszynę wirtualną
1.3 Kliknij ikonę CD w prawym dolnym pasku zadań
1.4 Wybierz „Wybierz obraz dysku ...” ”i wyszukaj VBoxGuestAdditions.iso
1.5 W typie terminalu gościa (możesz to zrobić również z terminala hosta, jeśli używasz SSH):
Etap 2: Konfiguracja folderów współdzielonych:
2.1 Utwórz reguły w maszynie wirtualnej:
Settings > Shared Folders
Add new port forwarding rule
zielony przycisk w prawym górnym rogu okna.Auto-mount
iMake Permanent
2.2 Aby zamontować folder współdzielony
/opt
, musisz utworzyćshared_folder_dir
podfolder i ustawić dla niego odpowiednie uprawnienia:2.3 Dodaj nazwę użytkownika do grupy vboxsf :
2.4 Uruchom ponownie maszynę wirtualną, aby zastosować zmiany:
Etap 3: Automatyczny montaż
host_folder
w/opt/shared_folder_dir
:3.1 Zmień plik VM /etc/rc.local:
i umieść następujące powyżej
exit 0
:3.2 Uruchom ponownie maszynę wirtualną, aby zastosować zmiany:
Zobacz też
źródło
Od /ubuntu//a/171357/476506
Powyższe polecenie daje dostęp do folderu współdzielonego dla „użytkownika”.
źródło