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

Есть две возможности.

Сам сценарий не имеет разрешений на выполнение. Решение:

chmod +x script-name

Сам скрипт не имеет разрешений на выполнение. Решение:

Обычно первая строка скрипта должна быть:

#!/usr/bin/perl

Если это так, и если сам сценарий является исполняемым, попробуйте это: [ ! d8]

if [ -x /usr/bin/perl ] ; then echo ok ; else echo OOPS ; fi

или, если ваша оболочка по умолчанию - csh или tcsh:

sh -c 'if [ -x /usr/bin/perl ] ; then echo ok ; else echo OOPS ; fi'

Если это печатает ok, происходит что-то очень странное. Если он печатает OOPS, то ваш интерпретатор Perl не является исполняемым, что, вероятно, указывает на его неправильную установку. Если это так, я не собираюсь предлагать быстрое исправление.

Еще одна мысль: возникает ли сообщение от выполнения самого скрипта или от чего-то, что он делает?

Do вы видите ошибку при выполнении сценария из командной строки? Если это так, если вы добавили

print "Hello\n";

в верхней части скрипта, появляется сообщение «Hello» перед сообщением «Отказано в разрешении»? Если это так, то проблема находится где-то в скрипте (о котором у нас нет информации). Вы должны уметь сузить его.

1
задан 18 May 2018 в 07:46

6 ответов

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

[Ф1]

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

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

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

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

это именно то, что решение ниже. Не будьте вводят в заблуждение по длине, что написано, это на самом деле очень простой. Есть просто много и много примеров того, что происходит.

я буду листать между юид и vbox приставки здесь (Mac и виртуальной коробка/убунту) в этом док — убедитесь, что вы понимаете, какое окно твое.

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

устройство

заметим, что это было сделано на свежих из коробки 10.9.5 Mac, с ничего на нем, не подключенных к корпоративной сети, ничего особенного, работающих на нем другие, чем программное обеспечение. Это так же просто, как он получает.

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

[Ф2] [dиода d17]обратите внимание, что joe_public - это 501 — это по умолчанию первый идентификатор на OSX — ничего особенного[!dиода d17]

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

[Ф3]

501

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

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

[Ф4]

создали три точки монтирования, используя joe_public настройки -> Общий интерфейс папок.

[ф5]

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

[ф6]

обратите внимание, что гид за это 999 — это группу vboxsf.

[ф7]

это было назначено automagicly по виртуальной версии 4.3.16 для нас. Файл vbox документации показывает пути, как это изменить, если вы установите путь вручную через командную строку, но кто будет помнить что — просто принять по умолчанию, что ГУЙ сил на нас..

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

[ф8]

отметим, что на данный момент vboxsf не является членом этой 501[!группа Д16] — и это будет проблемой, пока мы не исправим это. К вашему сведению: эти группы по умолчанию присваивается учетной записи при ее создании.

[F9] и

Итак, что мы имеем на данный момент (мы еще ничего не сделали, чтобы исправить это)

[ф10]

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

[dрайвер d41]так, еще на vbox в/убунту, сделать joe_public член группы vboxsf 999[!dрайвер d41] [ф11]

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

[d43 см.]vboxsf[!d43 см.]

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

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

[ф12]

так, на данный момент, у нас есть!d53] [от f13] [о d54]доказательство здесь, если это работает — это следующий шаг [!о d54]

vboxsf

[размером d57]CD в нашем каталоге и нажмите файл[!размером d57] [ф14]

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

[ф15]

на OSX: -----

[ф16]

на OSX: -----

[f17 в] [d63, как]все, кажется, работает.. [!d63, как] [d64 с]файл vbox: ------ окончательная проверка[!d64 с]

что мы выясняем здесь, что все это зависит от пользователя файл vbox: ------ окончательная проверка будучи членом vboxsf группа — и самым простым способом является просто удаление joe_public из группы

[г70]удаление пользователя joe_public из группы vboxsf[!г70] [ф18]

видя, если мы можем получить к нему доступ нашего каталога-и мы не можем, и это доказывает, что группа разрешения проблем!d73] [зг19]

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

[ф20]

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

[клавиши f21]

файл vbox: - еще одна проблема-символических ссылок в vbox -------

если вы идете в файл vbox: -- еще одна проблема -- символические ссылки в vbox -------, вы увидите, что символические ссылки на общие каталоги просто не работают. Это действительно большая проблема, если вы пытаетесь создать полную среду разработки Linux на общий диск.

[ф22]

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

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

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

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

VBoxManage

[ф23]

Примечание: Ubuntu-это имя моей виртуальной машины, а общий-это общий имя каталога.

Вы можете получить имя виртуальной машины, как эта:

[ф24]

и общие папки именем, либо через графический интерфейс виртуального окно, или

[f25 привод датчика]

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

в любом случае, чтобы проверить это, вернуться к вам окно vbox в

убунту

[ф26]

нет ошибки, и проверить

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-просто чтобы доказать, что все это работает

[ф28]

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

на OSX: ----------

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

какие другие решения доступны, когда решения этой проблемы существуют? — Такие вещи, как активный Каталог (продукт Microsoft) и как мог бы решить эту проблему. Было бы интересно получить в коллекцию эти решения и сравнить различные возможности и компромиссы.

3
ответ дан 25 May 2018 в 12:36

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

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

Источник (который я подтвердил при моем использовании VirtualBox в Mac OS X 10.11): http://www.virtualbox.org/manual/ch04.html #sf_mount_auto

3
ответ дан 25 May 2018 в 12:36

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

sudo adduser [username] vboxsf

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

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

3
ответ дан 25 May 2018 в 12:36

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

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

sudo usermod -G vboxsf -a <username>

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

2
ответ дан 25 May 2018 в 12:36

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

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

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

Выберите в меню VitualBox: Устройства -> Установить гостевые дополнения ...

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

cd /media/cdrom
sudo VBoxLinuxAdditions-x86.run

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

[d7 ] Установка гостевых дополнений имеет много преимуществ, таких как принятие разрешения экрана (размер вашего окна - это системное разрешение, т. Е. Полосы прокрутки), простой режим мыши (нет необходимости нажимать левую командную кнопку для отпускания курсора мыши) и, что мы поиск, общие папки.

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

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

Выберите в меню VitualBox: Устройства - > Общие папки ...

Нажмите кнопку «Добавить новую общую папку». Выберите путь к папке - папку на жестком диске Mac, например. / Users / Ондрей / Фотографии. Выберите имя папки - имя, которое идентифицирует эту общую папку в Ubuntu (как хост-систему), например. картинки. Выберите «Сделать постоянным» - если вы хотите продолжить определение этой общей папки. Нажмите «ОК». Нажмите «ОК», чтобы закрыть список общих папок.

III. Mount Shared Folder

Установите созданную общую папку в папку с разрешениями для вашего пользователя. Давайте откроем окно терминала в Ubuntu и:

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

mkdir DIR

например. (in / 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)

so uid of мой пользователь - 1000. Установите общую папку SHARED_FOLDER_NAME в папку MOUNTED_FOLDER с правами собственности для пользователя с uid USER_ID как root:

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 vim / 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 и gid значения могут быть найдены на выходе команды id (подробнее см. шаг 2). Общая папка будет доступна также после перезагрузки виртуальной машины.

Источник: http://www.valibuk.net/2009/03/accessing-mac-os-x-harddrive-from- убунту-в-VirtualBox-через-общие-папки /

0
ответ дан 25 May 2018 в 12:36

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

# usermod -aG vboxsf user

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

-1
ответ дан 25 May 2018 в 12:36

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

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