Jak zmusić system operacyjny gościa do śledzenia dowiązań symbolicznych z folderu współdzielonego

18

Mam Ubuntu Desktop jako mój główny system operacyjny, a Ubuntu Server jako mój system operacyjny gościa w VirtualBox 4.2.16.

Utworzyłem folder współdzielony o nazwie / shared i umieściłem w nim kilka dowiązań symbolicznych do różnych folderów w moim głównym systemie operacyjnym. Oczywiście mój system operacyjny gościa widzi tylko zepsute dowiązania symboliczne - ponieważ te lokalizacje istnieją tylko w głównym systemie operacyjnym.

Jak sprawić, by mój system operacyjny gościa widział ich rzeczywistą zawartość?

Utworzenie innego folderu współdzielonego nie jest opcją.

dev9
źródło
1
Do Twojej wiadomości, jeśli Twoim hostem jest Windows7,8,10, musisz postępować zgodnie z instrukcjami zawartymi w odpowiedzi ORAZ następnie sudo uruchomić maszynę wirtualną (inaczej „uruchom jako administrator”), jak widać w tym poście na blogu o folderach współdzielonych VM gości z linkami symbolicznymi na host systemu Windows .
Trevor Boyd Smith

Odpowiedzi:

23

Jest to problem w virtualBox i dotyczy bezpieczeństwa. Przed 4.1.8 dowiązania symboliczne działały, ale były poważnie wadliwe. I podjęto decyzję o usunięciu obsługi dowiązania symbolicznego.

Zobacz ten komentarz :

Tworzenie dowiązań symbolicznych z poziomu gościa zostało wyłączone w VirtualBox 4.1.8 ze względów bezpieczeństwa. Gość może tworzyć dowiązania symboliczne, które wskazują poza przypisany katalog hosta. Nie ma to nic wspólnego z żadnym błędem ext3 / ext4. Gość nadal może czytać dowiązania symboliczne tworzone na hoście.

Przepraszam za spóźnione oświadczenie.

Jeśli zrobisz

 VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1

Wtedy twój gość będzie mógł ponownie utworzyć dowiązania symboliczne. Ale ze względów bezpieczeństwa (patrz wyżej) jest to domyślnie wyłączone. Poprawka zapobiegająca niebezpiecznym dowiązaniom symbolicznym od gościa jest bardzo skomplikowana, dlatego postanowiliśmy nie zezwalać żadnemu gościowi na tworzenie żadnych dowiązań symbolicznych w celu obejścia problemu bezpieczeństwa.

(Pozwoliłem sobie naprawić błąd w komentarzu;))

Rinzwind
źródło
Wykonałem to polecenie i zrestartowałem VB. Kolor dowiązania symbolicznego zmienił się, ale teraz nie mogę nawet w nim cd. Widzę to, gdy używam ls, ale bash przestał pokazywać mi to w TAB.
dev9
Hmm brzmi jakby nie był wykonywalny?
Rinzwind
Cóż, ls pokazuje mi lrwxrwx ---, więc powinno być dobrze. Kiedy próbuję w niego cd, bash nie informuje mnie o takim pliku lub katalogu.
dev9
3
Co to jest SHARE_NAME? Nikt nie wyjaśnia jasno, skąd go mamy.
Meglio
3
Folder używany do udostępniania.
Rinzwind
1

Krótka odpowiedź brzmi: nie da się tego zrobić.

Poniższy bilet na virtualbox.org zawiera pewne wyjaśnienia:

Ta zmiana jest zamierzona i rozwiązuje problem z bieżącą implementacją folderów współdzielonych. Dla kompatybilności z systemami-gośćmi, które nie mają pojęcia, co to jest dowiązanie symboliczne, jest on obecnie interpretowany po stronie hosta, a to oznacza, że ​​można uzyskać nieoczekiwane zachowanie z systemami-gośćmi, które wiedzą, co to jest dowiązanie symboliczne (np. Jeśli dowiązanie symboliczne w folderze udostępnionym jest zamontowane at / foo wskazywałby na / bar / plik, nie można zrobić właściwej rzeczy po stronie hosta).

Jest to oczywiście możliwe do naprawienia, ale dalekie od trywialnego, ponieważ separacja przetwarzania dowiązań symbolicznych między stroną systemu operacyjnego gościa a stroną hosta musi zostać przeprojektowana. Nie można tego szybko zrobić, więc jedyną opcją było wyłączenie tworzenia dowiązań symbolicznych. Zbyt wielu użytkowników / aplikacji zaskoczyło niestandardowe zachowanie.

Źródło

Sylvain Pineau
źródło