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

0

Я создал общую папку в папке / Users / shared. я имею перемещены файлы виртуальной коробки в эту папку /Users/shared_folder/.VirtualBox VMs/

Я установил всю папку со всеми разрешениями: sudo chmod -R 777 shared_folder, Я переключился на другого пользователя и выполнил ту же команду. Я также попытался с помощью следующей команды, как Я читаю здесь (кстати, не зная, что я делал) find somedir \( -type d -exec chmod u+rwx,g+rwx,o+rx {} \; -o -type f -exec chmod u+rw,g+rw,o+r {} \; \)

Оба пользователя могут получить доступ к одной и той же виртуальной машине ... Пока некоторые из них не сохранят состояние машины. Затем другой пользователь не может получить доступ из-за нехватки разрешений на чтение.

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

chelder
источник

Ответы:

0

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

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

(1) Создать группу для пользователей, чтобы поделиться:

Добавить группу, например:

sudo groupadd vboxsharing

(Обратите внимание, что VirtualBox уже установил группу «vboxusers». Она имеет специальное назначение, но вы можете использовать эту существующую группу вместо добавления новой.)

(2) Добавить пользователей в группу:

Пользователи, которым потребуется доступ к общим виртуальным машинам, должны быть добавлены в группу:

sudo usermod -a -G vboxsharing <user1>
sudo usermod -a -G vboxsharing <user2>
# ... etc.

ПРИМЕЧАНИЕ. В качестве альтернативы вы можете установить группу как первичную для всех этих пользователей ( sudo usermod -g vboxsharing <userXYZ> ), что означает, что вы можете пропустить шаг № 3 ниже. Однако это является угрозой безопасности, и ее следует избегать.

(3) Новые файлы VirtualBox, доступные для группы:

Изменить владельца группы папки:

sudo chgrp -R vboxsharing /Users/shared_folder

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

Поэтому для вашей папки сделайте следующее:

sudo chmod -R 6770 /Users/shared_folder

6, в начале битов разрешения, является комбинацией setuid и setgid:

  • setuid = 4
  • setgid = 2

Технически, вам не нужно setuid. Поэтому достаточно иметь:

sudo chmod -R 2770 /Users/shared_folder

..

Замечания:
И вам не нужно так долго find команда, это команда для применения другого набора разрешений к файлам и другого набора к папкам.

jehad
источник
Спасибо, мужик. К сожалению, та же проблема все еще возникает: VirtualBox по-прежнему устанавливает разрешения только для текущего пользователя. Я думаю об обходе сценария, который меняет разрешения прямо перед выполнением VirtualBox. Это было бы ужасно, и пользователям придется каждый раз вводить свои пароли администратора ...
chelder
1
Если вы УСТАНОВИЛИ папки, и у всех есть групповая запись (через umask ) тогда владельцы файлов не будут иметь значения.
chicks
@ chicks, спасибо за указание на избыточность. Я изменил свой ответ, чтобы выделить ненужные настройки setuid, и расширился, чтобы убедиться, что группа установлена ​​(возможно, я неправильно предположил, что это очевидно). Сегодня я поэкспериментирую позже, когда у меня будет время, чтобы убедиться, что мой ответ работает на моей машине ... так что извините, мой ответ все еще может быть неправильным.
jehad
0

Предыдущие решения не работали для меня.

Я наконец решил создать разные виртуальные жесткие диски для каждого пользователя.

Другой подход может заключаться в создании сценария, который проверяет, принадлежит ли папка текущему пользователю. Если это не так, измените разрешения перед открытием VirtualBox.

Я написал об обоих подходах здесь: https://askubuntu.com/a/820614/279148

chelder
источник