Проблеми з дозволом на файл із спільними папками під віртуальним вікном (Ubuntu Guest, Windows Host)


102

Я використовую Ubuntu у Virtual Box, і у мене є папка, якою можна ділитися між хостом (Windows) та VM (Ubuntu). Коли я відкриваю будь-який файл у папці спільного доступу в Ubuntu, я не можу його змінити, оскільки його власник встановлений на root.

Як я можу змінити право власності на себе?

Ось результат ls -l:

-rwxrwxrwx 1 root root 0 2012-10-05 19:17 BuildNotes.txt

Вихід df:

m@m-Linux:~/Desktop/vbox_shared$ df
Filesystem   1K-blocks      Used Available Use% Mounted on
/dev/sda1     29640780  10209652  17925440  37% /
none            509032       260    508772   1% /dev
none            513252       168    513084   1% /dev/shm
none            513252        88    513164   1% /var/run
none            513252         0    513252   0% /var/lock
none            513252         0    513252   0% /lib/init/rw
Ubuntu       214153212  31893804 182259408  15% /media/sf_Ubuntu
/dev/sr0         53914     53914         0 100% /media/VBOXADDITIONS_4.2.0_80737
Ubuntu       214153212  31893804 182259408  15% /home/m/Desktop/vbox_shared

Параметри в VM є автоматичними, і readoly не перевіряється.

Спробував використовувати /media/sf_Ubuntu, але отримала помилку дозволу:

m@m-Linux:/media$ ls -l 
total 10
drwxrwx--- 1 root vboxsf 4096 2012-10-23 15:35 sf_Ubuntu
drwxrwx--- 2 root vboxsf 4096 2012-10-21 23:41 sf_vbox_shared
dr-xr-xr-x 6 m    m      2048 2012-09-13 07:19 VBOXADDITIONS_4.2.0_80737
m@m-Linux:/media$ cd sf_Ubuntu/
bash: cd: sf_Ubuntu/: Permission denied
m@m-Linux:/media$ cd sf_vbox_shared/
bash: cd: sf_vbox_shared/: Permission denied

Зверніть увагу, що я в групі vboxsf:

m@m-Linux:~$ id
uid=1000(m) gid=1000(m) groups=4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),119(admin),122(sambashare),1000(m),1001(vboxsf)

Як ви змонтували спільну папку? Чи дозволяєте ви автоматизувати його гостьовими утилітами VirtualBox (тобто / media / sf_something) або ви встановили його вручну за допомогою команди mount?
EightBitTony

Також ви можете описати, як ви налаштували частку під VirtualBox в Windows? Існує три варіанти для частки, лише для читання, автоматичного та постійного, які параметри ви поставили.
EightBitTony

Будь ласка, публікуйте оновлення свого питання - не як коментарі. Будь ласка, включіть вихід dfі команду, яку ви використовували для вручну монтувати файлову систему.
EightBitTony

Дякую - ви побачите, що існує файлова система / media / sf_Ubuntu. Це ваша спільна папка, вам не потрібно її вручну монтувати. Я пропоную вам зчитувати / home / m / Desktop річ, а просто використовувати / media / sf_Ubuntu, яка працює відповідно до моєї відповіді нижче.
EightBitTony

@Tony: Я не можу отримати доступ до цієї папки. Перегляньте моє оригінальне запитання, до якого я додаю більше інформації
user654019

Відповіді:


159

Регулярний спосіб отримати доступ до файлів зараз - це дозволити VirtualBox автоматично налаштувати спільну папку (яка зробить її появою під /media/sf_directory_name) і потім додати звичайного користувача Ubuntu до vboxsfгрупи (як root #).

# usermod -aG vboxsf <youruser>

За замовчуванням, без ручних дій, кріплення виглядають так,

drwxrwx--- 1 root vboxsf 40960 Oct 23 10:42 sf_<name>

тому vboxsfгрупа має повний доступ. Додавши свого користувача до цієї групи, ви отримуєте повний доступ. Таким чином, ви б не турбувалися про зміну їх дозволів (що не має сенсу для хоста Windows), ви просто надаєте собі доступ.

У цьому конкретному випадку це автоматична спільна папка,

Ubuntu               214153212  31893804 182259408  15% /media/sf_Ubuntu

і саме той каталог слід використовувати для доступу до загальної папки, вводячи місцевого користувача в vboxsfгрупу. Якщо ви хочете "краще" посилання в домашньому каталозі користувача, ви завжди можете створити символічне посилання.

ln -s /media/sf_Ubuntu /home/m/Desktop/vbox_shared

Щоб зміни набули чинності, вам потрібно буде перезавантажити свій віртуальний комп'ютер

Якщо ви вручну монтуєте спільну папку, тоді вам потрібно використовувати відповідні параметри mountкоманди, щоб встановити папку з правом власності (тобто параметри gid, uid та umask для mount). Це тому, що Host OS не підтримує ту ж систему дозволів, що і Linux, тому VirtualBox не може знати, хто повинен володіти файлами.

Однак я настійно рекомендую просто налаштувати спільну папку для автоматичного встановлення (це налаштування для конфігурації загальної папки в самому VirtualBox).


Щоб уникнути сумнівів, я не вірю, що ви можете змінити дозволи, як правило, у цій файловій системі, якщо вона встановлена ​​регулярно,

tony@jabba:/media/sf_name$ ls -l tst.txt
-rwxrwx--- 1 root vboxsf 2283 Apr  4  2012 tst.txt
tony@jabba:/media/sf_name$ sudo chown tony tst.txt
[sudo] password for tony: 
tony@jabba:/media/sf_name$ ls -l tst.txt
-rwxrwx--- 1 root vboxsf 2283 Apr  4  2012 tst.txt
tony@jabba:/media/sf_name$ 

2
Коли я спробував це, я отримав повідомлення про те, що користувач вже знаходиться в групі, але коли я намагаюся змінити файл у папці спільного доступу, я отримую помилку, коли хочу його зберегти. Помилка: Не вдалося зберегти файл /home/m/Desktop/vbox_shared/test.tst Неочікувана помилка: помилка перейменування тимчасового файлу: Текстовий файл зайнятий.
користувач654019

Це інша проблема, яка, можливо, не пов'язана з дозволами. Чи можете ви створити новий файл або змінити інший файл. Зачекайте - / home / m / Desktop / vbox_shared? Ви вручну змонтували спільну папку? Це не шлях за замовчуванням.
EightBitTony

Перевіряючи систему, я виявив, що маю лише дозвіл на створення або видалення файлів, а не на дозвіл на читання / запис. Як я можу це дати собі?
користувач654019

9
Здається, перезавантаження потрібне для того, щоб воно набуло чинності.
Ерік Ван

3
ВИ ЗАБАВЛЯЄТЕ ПИВО ДЛЯ ЦЕЙ ВІДПОВІДЬ !!! Я взагалі не міг змусити це працювати, поки не натрапив на це. Не вірю, що цього більше немає. Я б хотів, щоб я міг підкреслити це не раз !!
Тенсіг

3

У мене просто була така ж проблема зі спільною папкою Win-Ubuntu, і спосіб її вирішення - додавання мого користувача в групу vboxsf, редагування файлу / etc / group. Сподіваюся, це працює для вас. Тут ви можете знайти коротку схему того, як я редагував файл

(edit /etc/group)
...
...
...
pulse:x:119:
pulse-access:x:120:
utempter:x:121:
rtkit:x:122:
saned:x:123:
openquake:x:1000:
sambashare:x:124:openquake,luisa
vboxsf:x:999:openquake,luisa   ##This is the line I add my user
postgres:x:125:
rabbitmq:x:126:
celery:x:500:
luisa:x:1001:

Луїза.


2
Ніколи не слід редагувати / etc / group безпосередньо, користуватися відповідними інструментами для цієї роботи (у цьому випадку usermod -aG <group> <user>).
raimue

Основна, якщо не лише, причина, чому це рекомендується, це тому, що якщо ви випадково помилилися вручну, оновлюючи файл типу / etc / group, він може визнати недійсним БД і по суті заблокувати вас.
Спенсер Вільямс

2

У мене була така ж проблема, і я вирішив встановити останню версію VirtualBox Guest Additions ; у моєму випадку було оновлено з 4.3.8 до 4.3.10.

По завершенні установки папка / media / sf_name не мала більше "root" як власника групи, але "vboxsf" як правильна.


1

Ви пробували судо?

$sudo chown username filename

Я не вірю, що це працює на спільних папках VirtualBox.
EightBitTony

Судо працює скрізь! : P посилання
Extn3389

12
Я не впевнений, якщо ти серйозний, але я буду тобі гумору. Вмонтована спільна папка є vboxfsфайловою системою типу, вона не шанує chown.
EightBitTony

Мені шкода, що я просто думав, що це може спрацювати.
Extn3389

1
Так, але це не змінило власника. Після запуску команди tis в терміналі для файлу та перегляду власника файлу він все ще належить root.
користувач654019

1

Якщо у вас розкіш в управлінні параметрами команди mount (наприклад, якщо ви встановлюєте вручну або використовуєте /etc/fstab), ви можете скористатися цим -o uid=771параметром до командної програми.

Вхід /etc/fstabвиглядатиме так

scanresults    /data/scanresults    vboxsf    uid=771    0 0

1

Увімкніть повний доступ для читання та запису до спільної папки на хості Windows від гостя Ubuntu для не-кореневого користувача Linux

Цей крок дозволить вам отримати доступ до певного режиму на хост-машині Windows з гостьового терміналу Linux. У цьому прикладі ім'я частки з точки зору OVB буде vshare (що за замовчуванням), повний шлях dir до ОС Windows (до ОС хоста) буде "C: \ var \", а повний шлях до файлу доступ до нього з гостя vm буде "/ бродячим", і нарешті ім'я користувача, щоб увімкнути повний доступ для повторного запису / запису, буде "ти".

 # how-to add a shared folder on the host
 VBoxManage sharedfolder add "host-name" -name "vshare" -hostpath "C:\var" -automount

1. Встановіть необхідні умови гостьових додатків

Встановіть необхідні умови гостьових додатків, видавши таку команду:

 sudo apt-get install -y build-essential make gcc  linux-headers-$(uname -r) 
 linux-headers-generic make linux-source  linux-generic linux-signed-generic

2. Встановіть додатки для гостей

Не використовуйте .iso файл для завантаження та інсталятор звідти - він просто не працюватиме !!!

sudo apt-get install virtualbox-guest-dkms 

3. Змініть, щоб частка dir була автоматизована під час завантаження vm

Змініть ваш аргумент для редагування пайок для автоматичного підключення під час завантаження vm, додавши наступні рядки до кінця файлу fstab (зверніть увагу на конфіденцію "vshare" та uid = 10001):

/media/sf_vshare /vagrant vboxsf bind,uid=10001,rw,umask=0000 0 0
# eof file: /etc/fstab 

4. додайте себе до групи vboxsf

Вам потрібно додати себе до групи vboxsf, щоб мати змогу редагувати як не-root з вашого vm файли на вашій хост-машині. # mount sudo mount -a

sudo usermod -G vboxsf -a you 

5. перезавантажте та перевірте

Перезавантажте vm та увійдіть через ssh, щоб перевірити обмін файлами. # ssh до vm ssh ви @ ім'я хоста

# check as yourself that you have 
find /vagrant

0

Доповнення до віртуальної скриньки потрібно встановити знову після оновлення вашої гостьової системи. Думаю, проблема полягає в тому, що при оновленні деяких компонентів в ubuntu деякі компоненти змінюються, після установки vb-доповнень sf_forlder_name стане доступним. Мою проблему вирішили таким чином. Рішення Пісу працює.


На мій досвід, доповнення до віртуальних вікон гості потребують оновлення лише після оновлення хост-системи VirtualBox. Не коли програмне забезпечення клієнта змінюється. Яке програмне забезпечення на клієнті ви оновили, щоб зробити це необхідним?
Антон

1
Ні, нікі - це правильно. Якщо оновити ядро ​​гостьової ОС, вам доведеться перевстановити додатки для гостей.
Спенсер Вільямс

-2
  • Демонтувати акції як root
  • Внесіть необхідні зміни за допомогою chownтаchmod
  • перезавантажте і оформить замовлення акцій з належними правами
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.