Як змусити гостьову ОС слідувати за посиланнями із загальної папки


18

У мене є основна ОС Ubuntu Desktop, а сервер Ubuntu як моя гостьова ОС у VirtualBox 4.2.16.

Я створив спільну папку під назвою / спільним і вклав у неї кілька посилань на різні папки в основній ОС. Звичайно, моя гостьова ОС бачить лише зламані символьні посилання - тому що ці локації існують лише в основній ОС.

Як я можу змусити мою гостьову ОС бачити фактичний вміст їх?

Створення іншої спільної папки - це не варіант.


1
FYI, якщо ваш хост Windows7,8,10, то вам потрібно дотримуватися вказівок у відповіді І потім також судо запустити VM (він же "запустити як адміністратор"), як видно з цього повідомлення в блозі про linux гість VM спільних папок із символьними посиланнями на хост windows .
Тревор Бойд Сміт

Відповіді:


23

Це проблема у virtualBox і пов'язана з безпекою. До 4.1.8 посилання спрацьовували, але були серйозні помилки. І рішучість була зроблена для того, щоб зняти опору символьної лінії.

Дивіться цей коментар :

Створення символічного посилання з боку гостя було відключено в VirtualBox 4.1.8 з міркувань безпеки. Гість може створити символічні посилання, які вказують за межами призначеного каталогу хостів. Це не стосується жодної помилки ext3 / ext4. І гість все ще може читати символьні посилання, які створюються на хості.

Вибачте за пізню заяву.

Якщо ти зробиш

 VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1

Тоді ваш гість знову зможе створити посилання. Але з міркувань безпеки (див. Вище) це вимкнено за замовчуванням. Виправлення для запобігання небезпечних посилань від гостя дуже складне, тому ми вирішили не дозволяти жодному гостю створювати будь-яке символьне посилання для вирішення проблеми безпеки.

(Я взяв на себе сміливість виправити помилку в коментарі;))


Я виконав цю команду і перезапустив VB. Колір симпосилання змінився, але зараз я навіть не можу його вписати. Я бачу це, коли я використовую ls, але Баш перестав показувати мені це на TAB.
dev9

Хм звучить так, що це не виконується?
Rinzwind

Ну, ls показує мені lrwxrwx ---, так що це повинно бути добре. Коли я намагаюся записати його на компакт-диск, bash повідомляє мені, що немає такого файлу чи каталогу.
dev9

3
Що таке SHARE_NAME? Ніхто не пояснює це чітко, де ми це беремо.
Meglio

3
Папка, яку ви використовуєте для спільного доступу.
Rinzwind

1

Коротка відповідь - це зробити не можна.

Наступний квиток на virtualbox.org має деякі пояснення:

Ця зміна є навмисною та усуває проблему з поточною реалізацією спільних папок. Для сумісності з гостьовими ОС, які не мають уявлення про те, що таке посилання, це в даний момент інтерпретується на стороні хоста, і це означає, що можна отримати несподівану поведінку з гостьовими ОС, які знають, що таке посилання (наприклад, якщо посилання на спільну папку встановлено at / foo вказував би на / bar / файл, що неможливо зробити правильно на стороні хоста).

Це, звичайно, фіксується, але далеко не банальне, оскільки розділення обробки симпосилань між гостьовою стороною ОС та стороною хоста потрібно переробити. Це неможливо зробити швидко, тому єдиним варіантом було відключити створення символьних посилань. Занадто багато користувачів / додатків були здивовані нестандартною поведінкою.

Джерело

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.