Как правильно делиться каталогами с Ubuntu, работающим на виртуальной машине Virtual Box с правильными разрешениями?

В VirtualBox, как лучше всего делиться каталогом между хостом OS X и гостем Ubuntu?

  • Хост: Mac OS X 10.7.3
  • Гость: Ubuntu 12.04
  • Гость имеет общий каталог, смонтированный через настройки VirtualBox с Access = Full и Auto-Mount = Yes .

Проблема с этой настройкой показана ниже. В моем общем каталоге я не могу изменить разрешения вообще (не ошибка отказа в разрешениях, но они просто не вступают в силу).

Ubuntu 12.04 (гость):

% 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 (хост):

$ 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

Если я chmod на гостевой, ничего не меняется:

% chmod +x 1 | ls -l 1 # guest
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 1

Если я chmod на хосте, он меняется на хосте, но не на гостевой:

$ 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
23
задан 18 May 2018 в 07:46

8 ответов

Я понял это!

Воспроизвести:

  1. Завершите работу VM, добавьте совместно используемые папки в настройках VBOX (Permanent=Yes, Auto-Mount=No)
  2. Запустите VM
  3. От терминала, выполненного umask && id как обычный пользователь для получения чего-то вроде этого:

    002 # this is your umask
    uid=1000(luser) gid=1000(luser) groups=1000(luser),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),124(sambashare),125(vboxsf)
    
  4. sudo mkdir -p /media/sf_src # src is the shared directory

Смонтироваться src каталог как тест:

sudo mount.vboxsf -o umask=002,gid=1000,uid=1000 src /media/sf_src 
                           |   |        |        |   |-> where to mount
                           |   |        |        |       the file
                           |   |        |        |-> name of the shared dir
                           |   |        |            (in VBox settings)
                           |   |        |
                           \   |        /
                        from the `id` command

Автоматически смонтировать его на входе в систему, редактировании /etc/fstab и добавьте следующее:

src /media/sf_src vboxsf umask=002,gid=1000,uid=1000
23
ответ дан 18 May 2018 в 07:46

После того, как вы создадите общую папку в настройках Virtualbox, Ubuntu автоматически смонтирует ее для вас при следующей загрузке системы (вы увидите значок на рабочем столе).

enter image description here

Но если вы не используете учетную запись root, у вас не будет разрешения на доступ к ней. Что вам нужно сделать, это добавить свою учетную запись в группу пользователей с именем 'vboxsf':

sudo usermod -G vboxsf -a $USER

Затем выйдите из системы и войдите снова. Теперь вы можете получить доступ к общей папке.

0
ответ дан 18 May 2018 в 07:46

Для меня все, что мне нужно было сделать, это:

sudo adduser [username] vboxsf

Этого было достаточно, чтобы получить доступ к общим папкам. В папке есть группа vboxsf, для доступа к ней нужно всего лишь назначить пользователя. Если вам нужно установить более строгий доступ или более контролируемый доступ, вам может потребоваться выполнить шаги по его монтированию вручную с правильными идентификаторами пользователей.

Для меня решение fstab не сработало и заставило машину загружаться неправильно.

0
ответ дан 18 May 2018 в 07:46

Начиная с VirtualBox v4.0, эти проблемы с разрешениями легко решать! Вам не нужно беспокоиться о mkdir, mount, chmod, umask и т. Д. Чтобы получить доступ к автоматически смонтированным общим папкам (которые отображаются в /media с префиксами sf_ по умолчанию), есть только одна вещь, которую вам нужно сделать: Добавьте ваше имя пользователя в группу vboxsf через sudo usermod -a -G vboxsf [username].

Для удобства вы также можете создать символические ссылки на эти общие папки в вашей папке home (например, ln -s /media/sf_Stuff ~/Stuff).

Источник: http://www.virtualbox.org/manual/ch04.html#sf_mount_auto

0
ответ дан 18 May 2018 в 07:46

Из https://askubuntu.com/a/171357/476506

# usermod -aG vboxsf user

Вышеуказанная команда даст доступ к общей папке для «пользователя».

0
ответ дан 18 May 2018 в 07:46

ОС хоста : macOS
ОС VM (гостевая) : Сервер Ubuntu 16.04.5 LTS [ 1121]
VirtualBox v5.2.18
И у хостовой, и у гостевой ОС должен быть один и тот же пользователь (далее по тексту: username ).

Этап 1: установить гостевых дополнений VirtualBox :

1.1. Найдите гостевые дополнения VirtualBox,

$ cd /Applications/VirtualBox.app/Contents/MacOS/
$ cp VBoxGuestAdditions.iso ~/Downloads/

1.2. Запустите ВМ

1.3. Щелкните значок компакт-диска в правой нижней панели задач

1.4. Выберите «Выберите образ диска ...» »и найдите файл VBoxGuestAdditions.iso

1.5. В гостевом терминале введите (вы также можете сделать это с хост-терминала, если в него подключен SSH):

$ sudo su
$ apt update
$ apt upgrade
$ apt-get install dkms build-essential linux-headers-generic gcc make
$ mount /dev/cdrom /mnt
$ cd /mnt
$ sh ./VBoxLinuxAdditions.run
$ reboot

Этап 2: Настройка общих папок:

2.1. Создание правил в ВМ:

  • Остановка ВМ
  • Перейти к Settings > Shared Folders [ 1136]
  • Нажмите зеленую кнопку Add new port forwarding rule в правом верхнем углу окна.
  • Найдите и выберите папку, к которой вы хотите предоставить общий доступ (например: / path / to / shared / host_folder )
  • Выберите опции Auto-mount и Make Permanent
  • Запустите виртуальную машину

2.2. Чтобы смонтировать общую папку на /opt, вы должен создать подпапку shared_folder_dir и установить для нее соответствующие разрешения:

$ sudo mkdir -p /opt/shared_folder_dir
$ sudo chmod ug+w -Rv /opt/shared_folder_dir
$ sudo chown username:username -Rv /opt/shared_folder_dir

2.3. Добавить имя пользователя в vboxsf группа:

$ sudo adduser username vboxsf
$ sudo usermod -a -G vboxsf username

2.4 Перезагрузите виртуальную машину, чтобы применить изменения:

$ sudo reboot

Этап 3: автоматический монтаж host_folder в /opt/shared_folder_dir:

3.1 Измените виртуальные машины /etc/rc.local:

$ sudo nano /etc/rc.local

и p кружево следует прямо над exit 0:

# 'folder_name' = given in the shared folders configuration
# 'path/to/shared/folders' = guest path to access the shared folders from
# 'id' = prints uid/gid
# sudo mount -t vboxsf -o uid={uid},gid={gid} {shared_folder_name} {path/to/shared/folder}
sleep 5
sudo mount -t vboxsf -o uid=1000,gid=1000 host_folder /opt/shared_folder_dir
exit 0
<<< EOF >>>

Примечание: Я добавил sleep 5 для выполнения операции монтирования после [ 1161] Виртуальные гостевые дополнения начались. Вы можете проверить это командой journalctl -b.

3.2. Перезагрузите ВМ, чтобы применить изменения:

$ sudo reboot

См. Также

0
ответ дан 18 May 2018 в 07:46

Я нашел это, я протестировал, и это работало в Ubuntu и Xubuntu, просто функция автомонтирования не сделала работавший для меня

I. Установите гостевые дополнения

Во-первых, необходимо установить Гостевые Дополнения VirtualBox к хост-системе:

Выберите в меню VitualBox: Устройства-> Гостевые Дополнения Установки …

Это монтирует новый ISO для хост-системы. Новый CD появляется в Ubuntu (или смонтируйте его). Выполненный как корень сценарий установки VBoxLinuxAdditions-x86.run (потому что это - основанный на Intel Mac) в Окне терминала:

cd /media/cdrom
sudo VBoxLinuxAdditions-x86.run

Вероятно, Вас попросят перезапустить Ubuntu.

Установка Гостевых Дополнений имеет много преимуществ, таких как принятие разрешения экрана (Ваш размер окна является системным разрешением, т.е. никакими полосами прокрутки), легкий режим мыши (никакая потребность нажать левую кнопку для выпуска курсора мыши) и, что мы ищем, совместно используемые папки.

II. Создайте совместно используемую папку

Цель состоит в том, чтобы получить доступ к совместно используемой папке, что такое более легкий путь, чем использовать sshd или Samba.

Выберите в меню VitualBox: Устройства-> Совместно используемые папки...

  • Нажмите на Добавление новой кнопки совместно используемой папки.
  • Выберите Folder Path - папка на Вашем жестком диске Mac, например,/Users/ondrej/Pictures.
  • Выберите Folder Name - имя, которое определяет эту совместно используемую папку в Ubuntu (как хост-система), например, изображения.
  • Выбор Делает Постоянными - если требуется сохранить это определение совместно используемой папки.
  • Нажмите на OK.
  • Нажмите "OK" для закрытия списка совместно используемых папок.

III. Смонтируйте совместно используемую папку

Смонтируйте созданную совместно используемую папку в папку с полномочиями для Вашего пользователя. Давайте откроем Окно терминала на Ubuntu и:

Создайте папку, где будет совместно используемая папка смонтирована. (Пропустите этот шаг, если уже имеют папку для этого.)

mkdir DIR

например, (в/tmp)

mkdir share

Получите своего пользователя uid:

id

Результат будет чем-то как:

uid=1000(ondrej)gid=1000(ondrej)groups=4(adm),20(dialout),24(cdrom),
46(plugdev),112(lpadmin),119(admin),120(sambashare),1000(ondrej)

так uid моего пользователя 1000. Смонтируйте совместно используемую папку SHARED_FOLDER_NAME в папку MOUNTED_FOLDER с владением для пользователя с uid USER_ID как корень:

sudo mount -t vboxsf -o uid=USER_ID SHARED_FOLDER_NAME MOUNTED_FOLDER

например.

sudo mount -t vboxsf -o uid=1000 pictures /tmp/share

Определение uid параметра позволяет писать в совместно используемую папку для Вашего пользователя. Смонтированная папка MOUNTED_FOLDER (например,/tmp/share) содержит файлы от совместно используемой папки на Вашем жестком диске Mac. Возможно записать в папку доли также. Дополнительно, совместно используемая папка может быть автоматически смонтирована на виртуальной машине, запускаются. Добавьте следующую строку к/etc/fstab файлу (как корень, например, sudo энергия/etc/fstab):

SHARED_FOLDER_NAME /PATH/TO/MOUNTED/FOLDER vboxsf uid=1000,gid=1000 0 0

например.

pictures /tmp/share vboxsf uid=1000,gid=1000 0 0

где uid и значения ценуроза могут быть находкой в выводе идентификационной команды (см. шаг 2 для подробного примера). Совместно используемая папка будет доступна также после перезапуска виртуальной машины.

Источник: http://www.valibuk.net/2009/03/accessing-mac-os-x-harddrive-from-ubuntu-in-virtualbox-via-shared-folders/

0
ответ дан 18 May 2018 в 07:46

Проблема - разрешение выпускает в vbox/ubuntu доступ к общему диску OSX

joe_public@joe_public-ubuntu-VirtualBox:/$ ls /media/sf_shared
ls: cannot open directory /media/sf_shared: Permission denied

Целью является простой путь к совместно использовать каталоги между средами Ubuntu и Mac. К сожалению, примеры, которые я видел до сих пор, кажется, немного более сложны, чем они фактическая потребность быть и действительно не объясняют, что настоящая проблема, которая должна быть решена. Я попытаюсь для обработки обеих из тех проблем здесь.

Средой здесь является Mac, выполняющий OSX 10.9.5 с Виртуальным Полем 4.3.16, выполняющим Ubuntu 14.04.1 с Гостевыми установленными расширениями. Материал сентября 2014.

Я думаю, что вся проблема здесь состоит в том, что uid каталогов на Mac, и в Ubuntu должен соответствовать — ценуроз по умолчанию присвоился для пользователя, и группы отличаются между OSX и Ubuntu, и это - то, где проблема находится.

Для доступа к файлу нужно или владеть им или быть членом группы, которая владеет им. И поскольку доступ на самом деле основан на идентификационном номере группы, не названии группы, все, что необходимо, должен создать общее число группы с обеих сторон, что пользователи принадлежат.

Это точно, что ниже делает решение. Не будьте вводят в заблуждение длиной того, что записано, это на самом деле очень просто. Существуют только партии и много примеров того, что продолжается.

Я собираюсь быть зеркальным отражением между консолями OSX и VBOX здесь (Mac, и virtual-box/ubuntu) в рамках этого документа — удостоверяются, что Вы понимаете который окно Ваше в.

Заключительное примечание: решение, показанное ниже, основано на установлении общего идентификатора группы между OSX и средами Ubuntu, так, чтобы полномочия файла работали. Может быть другой, более современные решения. Этот действительно прост и понятен, и работает на скелете основные неукрашенные установки.

OSX: — — — — —

Обратите внимание, что это, был сделан на новом из поля 10.9.5 Mac, ни с чем на нем, не подключенный к корпоративной сети, ничто не представляет себе работать на нем кроме программного обеспечения запаса. Это столь просто, как это добирается.

Когда я сделал установку по умолчанию на Mac, joe_public является администраторским пользователем, и его uid был установлен на 501.

Joes-MacBook-Pro:/ joe_public$ id
uid=501(joe_public) gid=20(staff) groups=20(staff),999(vboxsf),401(com.apple.sharepoint.group.1),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),501(access_bpf),33(_appstore),100(_lpoperator),204(_developer),398(com.apple.access_screensharing),399(com.apple.access_ssh)

Заметьте, что uid 501 — это - значение по умолчанию, сначала считают идентификатор на OSX — ничто специальное

Я создал несколько каталогов, которые я хочу совместно использовать на стороне Mac — Примечание, что я не подверг их своему пользовательскому каталогу по резервным причинам.

Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk
Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk/shared
Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk/public 
Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk/images

Joes-MacBook-Pro:vdisk joe_public$ ls -al
total 0
drwxr-xr-x   5 joe_public  admin   170 Oct  8 01:08 .
drwxrwxr-t  36 root        admin  1292 Oct  6 02:26 ..
drwxrwxrwx   2 joe_public  admin    68 Oct  6 01:08 images
drwxr-xr-x   3 joe_public  admin   102 Oct  8 01:07 public
drwxrwxrwx   4 joe_public  admin   136 Oct  8 00:45 shared

VBOX: — — — — — —

Простая виртуальная установка поля и человечности по умолчанию - снова, joe_public является администратором по умолчанию, созданным, когда я установил человечность.

Отметьте еще раз, что пространство имен между OSX и Ubuntu полностью отличается. Нет абсолютно никаких отношений между двумя именами здесь.

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ id
uid=1000(joe_public) gid=1000(joe_public)   groups=1000(joe_public),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare)

Созданный три точки монтирования, с помощью Установки Виртуального Поля-> Совместно используемые папки gui.

Name      Path              Auto-mount  Access
images    /vdisk/images     Yes         Full
public    /vdisk/pubic      Yes         Read-only
shared    /vdisk/shared     Yes         Full

Примечание: Я на самом деле должен был перезагрузить свою сессию для всех этих точек монтирования для подъема.

joe_public@joe_public-ubuntu-VirtualBox:~$ mount | grep vboxsf
shared on /media/sf_shared type vboxsf (gid=999,rw)
public on /media/sf_public type vboxsf (gid=999,rw)
images on /media/sf_images type vboxsf (gid=999,rw)

Заметьте, что ценуроз для них 999 — это - vboxsf группа.

joe_public@joe_public-ubuntu-VirtualBox:~$ grep 999 /etc/group
vboxsf:x:999

Это было присвоено автоволшебно Виртуальной Версией модуля 4.3.16 для нас. vbox документация показывает пути, как изменить это, если Вы монтируете путь вручную через командную строку, но кто собирается помнить, что — Просто берут значения по умолчанию, которые GUI вызывает на нас..

Но это не работает (ожидаемый в этой точке - это - то, что мы пытаемся решить),

joe_public@joe_public-ubuntu-VirtualBox:/$ ls /media/sf_shared
ls: cannot open directory /media/sf_shared: Permission denied

Обратите внимание, что в этой точке joe_public не является членом этого vboxsf группа — и это будет проблемой, пока мы не фиксируем его. К вашему сведению: Это группы по умолчанию, присвоенные учетной записи, когда она создается.

joe_public@joe_public-ubuntu-VirtualBox:/media$ grep joe_public /etc/group
adm:x:4:syslog,joe_public
cdrom:x:24:joe_public
sudo:x:27:joe_public
dip:x:30:joe_public
plugdev:x:46:joe_public
lpadmin:x:108:joe_public
joe_public:x:1000:
sambashare:x:124:joe_public

Таким образом, что мы имеем в этой точке (мы не сделали ничего все же для фиксации ее),

•   On mac,   joe_public gid is 501
•   On linux, joe_public gid is 1000
•   On linux, vboxfs gid is 999
•   On mac,   vboxsf does not exist

Мы не хотим изменять ценуроз пользователя joe_public с обеих сторон, поскольку это - боль в заднице в уже установленных системах и не решает это для других пользователей. Простое решение состоит в том, чтобы сделать идентификатор группы соответствия — vboxsf — на стороне Mac и удостовериться, что joe_public является членом его с обеих сторон.

Так, все еще на vbox/ubuntu, сделайте joe_public членом 999 vboxsf групп

joe_public@joe_public-ubuntu-VirtualBox:/$ sudo usermod -a -G vboxsf joe_public
joe_public@joe_public-ubuntu-VirtualBox:/$ grep 999 /etc/group
vboxsf:x:999:joe_public

Я думаю, что вышел из своей учетной записи, и въезжайте задним ходом снова здесь после того, как я сделал это.

OSX: — — — — —

Теперь мы должны создать vboxsf группу на Mac. Я сомневаюсь, что имя на самом деле имеет значение здесь — это - 999 идентификаторов группы, это важно. Помните, что пространства имен системы каталогов (а также имена пользователей) отличаются между хостом и операционными системами VM. Но только сделать жизнь нормальной, все мы называем это vboxsf на Mac. То же обоснование, почему joe_public используется имя пользователя с обеих сторон.

OSX не имеет простого, добавляют, что команда группы как Linux делает — так используйте команду dscl, чтобы сделать это на нескольких шагах. Дополнительную информацию см. в документации Mac OS относительно этого. Заметьте, что мы создаем vboxsf группу и добавляем joe_public к той группе здесь.

sudo dscl . -create /Groups/vboxsf
sudo dscl . -create /Groups/vboxsf name vboxsf
sudo dscl . -create /Groups/vboxsf passwd "*”
sudo dscl . -create /Groups/vboxsf gid 999
sudo dscl . -create /Groups/vboxsf GroupMembership joe_public

Так, в этой точке мы должны иметь

•   On mac, joe_public gid is 501
•   On linux, joe_public gid is 1000
•   On linux, vboxfs gid is 999
•   On mac, vboxsf gid is 999
•   On linux, joe_public is member of vboxsf 
•   On mac, joe_public is member of vboxsf

Доказательство здесь - то, если оно работает — таким образом, это - следующий шаг

VBOX: — — — — — —

CD в наш каталог и касание файл

joe_public@joe_public-ubuntu-VirtualBox:/$ cd /media/sf_shared
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ touch foo

Проверьте, что мы создали файл успешно.

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ ls -al
total 4
drwxrwx--- 1 root vboxsf  102 Oct  8 00:44 .
drwxr-xr-x 5 root root   4096 Oct  8 00:30 ..
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:44 foo

OSX: — — — — —

Joes-MacBook-Pro:shared joe_public$ cd /vdisk/shared
Joes-MacBook-Pro:shared joe_public$ ls -al
total 0
drwxrwxrwx  3 joe_public  vboxsf  102 Oct  8 00:44 .
drwxr-xr-x  6 joe_public  admin   204 Oct  8 00:17 ..
-rw-r--r--  1 joe_public  vboxsf    0 Oct  8 00:44 foo

Joes-MacBook-Pro:shared joe_public$ touch bar
Joes-MacBook-Pro:shared joe_public$ ls -al
total 0
drwxrwxrwx  4 joe_public  vboxsf  136 Oct  8 00:45 .
drwxr-xr-x  6 joe_public  admin   204 Oct  8 00:17 ..
-rw-r--r--  1 joe_public  vboxsf    0 Oct  8 00:45 bar

VBOX: — — — — — —

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ ls -al
total 4
drwxrwx--- 1 root vboxsf  136 Oct  8 00:45 .
drwxr-xr-x 5 root root   4096 Oct  8 00:30 ..
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:45 bar
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:44 foo

Все это, кажется, работает..

VBOX: — — — — — — ЗАКЛЮЧИТЕЛЬНАЯ ПРОВЕРКА

Что мы проверяем, здесь то, что эта целая вещь зависит от пользователя joe_public быть членом vboxsf группы — и самый простой путь просто удаляет joe_public из группы

Удаление пользователя joe_public от группы vboxsf

joe_public@joe_public-ubuntu-VirtualBox:~$ sudo gpasswd -d joe_public vboxsf
log out/in ubuntu

Наблюдение, если мы можем получить доступ к нему наш каталог - и мы не можем, и это доказывает, что это - проблема разрешения группы

joe_public@joe_public-ubuntu-VirtualBox:/$ ls /media/sf_shared
ls: cannot open directory /media/sf_shared: Permission denied

Добавьте пользователя назад в vboxsf

joe_public@joe_public-ubuntu-VirtualBox:/$ sudo usermod -a -G vboxsf joe_public
log out/in ubuntu

Это работает снова!

joe_public@joe_public-ubuntu-VirtualBox:~$ ls -al /media/sf_shared
total 4
drwxrwx--- 1 root vboxsf  170 Oct  8 01:48 .
drwxr-xr-x 6 root root   4096 Oct  8 01:25 ..
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:45 bar
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:44 foo

VBOX: - ЕЩЕ ОДНА ПРОБЛЕМА - символьные ссылки в vbox-------

При входе в/media/sf_shared Вы найдете, что символьные ссылки в общих каталогах просто не работают. Это - действительно большая проблема, при попытке настроить полную среду разработки Linux на общем диске.

joe_public@joe_public-ubuntu-VirtualBox:/media$ cd sf_images
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ ls
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ mkdir test
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ ln -s test test2
ln: failed to create symbolic link ‘test2’: Read-only file system

По умолчанию символьные ссылки не поддерживаются на виртуальных долях поля. Посмотрите ниже для объяснений. В основном насколько я понимаю символьные ссылки являются дырой в системе безопасности, которые были "зафиксированы" в Виртуальном Поле путем отключения поддержки их в 4.1.8 периода времени (2011). Я работаю 4.3.16 сюда...

https://www.virtualbox.org/ticket/10085

http://ahtik.com/blog/fixing-your-virtualbox-shared-folder-symlink-error/

К счастью, существует черный ход, чтобы повторно включить его через команду Host's VBoxManage. Как всегда, поймите дыры в системе безопасности здесь, что можно открываться. Я нахожусь на автономной машине разработки, таким образом, это, кажется, не проблема.

OSX:------------

Joes-MacBook-Pro:shared pbradstr$ VBoxManage setextradata Ubuntu VBoxInternal2/SharedFoldersEnableSymlinksCreate/shared 1   

Примечание: Ubuntu является именем моего vm, и совместно использованный имя общего каталога.

Можно получить имя vm как это:

Joes-MacBook-Pro:shared pbradstr$ VBoxManage list vms
"Ubuntu" {8461045a-1cee-4d44-8148-05920a47cee0}
Joes-MacBook-Pro:shared pbradstr$

И имя совместно используемых папок, или через Виртуальное Поле gui, или

Joes-MacBook-Pro:shared pbradstr$ VBoxManage showvminfo Ubuntu | grep -A 5 "Shared folders"
Shared folders:  

Name: 'shared', Host path: '/vdisk/shared' (machine mapping), writable
Name: 'public', Host path: '/vdisk/public' (machine mapping), readonly
Name: 'images', Host path: '/vdisk/images' (machine mapping), writable

Я перезагрузил всю виртуальную систему поля здесь, я не выяснял минимальное требование для нее для взятия.

Так или иначе, для тестирования этого вернитесь к Вам vbox окно

VBOX:---------

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ ln -s test test2

Никакая ошибка - и проверить

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ ls -ald test*
drwxrwx--- 1 root vboxsf 102 Oct  8 11:33 test
lrwxrwx--- 1 root vboxsf   4 Oct  8 13:10 test2 -> test

OSX:----------

И назад на стороне Mac - только для доказательства все это работает

Joes-MacBook-Pro:shared pbradstr$ ln -s test test3
Joes-MacBook-Pro:shared pbradstr$ ls -ald test*
drwxr-xr-x  4 joe_public  admin  136 Oct  8 13:20 test
lrwxr-xr-x  1 joe_public  admin    4 Oct  8 13:10 test2 -> test
lrwxr-xr-x  1 joe_public  admin    4 Oct  8 13:21 test3 -> test

Отметьте, я только протестировал это на хосте OSX и Ubuntu виртуальный клиент поля. Ссылки, которые я упомянул выше, казалось, указали, что могла бы быть проблема, выполняющая основанный на Windows хост.

ОСУЩЕСТВЛЕНИЕ УЕХАЛО В СТУДЕНТА — — — — — — —

Преимущество упомянутого выше метода - то, что он может работать на стенде - вдоль машины без доступа к сети. Но если Вы думаете об этом, этой проблемой идентификатора стихов имени должна быть типичная проблема между любыми неоднородными вычислительными средами.

Что другие решения доступны, где решения той проблемы доступны? — Вещи как Active Directory (продукт Microsoft) и т.п. смогли решать это. Было бы интересно получить набор тех решений и сравнить там различные функции и компромиссы.

4
ответ дан 18 May 2018 в 07:46

Другие вопросы по тегам:

Похожие вопросы: