Вопрос или проблема
Я поделился папкой из Windows на моей виртуальной машине.
Общая папка монтируется правильно, и я могу читать и записывать в папке, но не могу изменить разрешения любого файла в общей папке.
Ниже приведены параметры монтирования общей папки
myVM on /media/sf_myVM type vboxsf (rw,nodev,relatime,ttl=0,iocharset=utf8,uid=0,gid=999,dmode=0770,fmode=0770,tag=VBoxAutomounter)
Пользователь уже является частью группы vboxsf
uid=1000(vmuser) gid=1000(vmuser) groups=1000(vmuser),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare),999(vboxsf),1001(sftp)
Ошибка, указанная ниже, появляется при попытке изменить разрешения с помощью chmod для любых файлов внутри общей папки.
chmod: changing permissions of 'perm.txt': Operation not permitted
Информация о режиме файла хранится в метаданных файловой системы. Файловые системы Linux имеют эти метаданные, файлы Windows — нет (по крайней мере, не те же метаданные). Хотя вы получаете доступ к файловой системе из виртуальной машины Linux, фактические файлы записываются в файловую систему Windows через общую папку. Обратите внимание на параметры монтирования dmode=0770
и fmode=0770
. Поскольку в Windows нет этих метаданных, это говорит Linux: “сделать вид, что каталоги имеют режим 0700, а файлы режим 0770”.
Информация о режиме, которую вы пытаетесь изменить, изначально не существует.
Я не могу вспомнить, может ли MS-Windows это делать, но давайте предположим, что может. Параметры монтирования имеют другие uid/gid, чем у активного пользователя. Это, вероятно, остановит его работу, таким образом, что объясняется с помощью sudo
, заставляя это работать.
.
Ответ или решение
Причина, по которой вы не можете изменить права на файлы в общей папке VirtualBox, связана с тем, как операционные системы Windows и Linux обрабатывают файловые системы, а также с настройками монтирования общей папки. Давайте разберемся в этой ситуации более детально.
Проблема с изменением прав доступа
Вы сталкиваетесь с ошибкой, когда пытаетесь использовать команду chmod
для изменения разрешений файла в общей папке, смонтированной в вашей виртуальной машине. Ошибка, которую вы получаете — "Operation not permitted", — указывает на то, что проводятся операции, которые не поддерживаются или запрещены.
Техническая основа проблемы
Ваша общая папка смонтирована с использованием специфических параметров:
type vboxsf (rw,nodev,relatime,ttl=0,iocharset=utf8,uid=0,gid=999,dmode=0770,fmode=0770,tag=VBoxAutomounter)
Эти параметры определяют, что общая папка поддерживает чтение и запись (rw), и задают режимы директории и файлов: dmode=0770
и fmode=0770
. Эти параметры регулируют, как файлы и папки "выглядят" в Linux, несмотря на то, что хранятся они на файловой системе Windows, которая не поддерживает Unix-подобную систему метаданных, связанную с правами доступа.
Причина невозможности изменения прав
При монтировании общей папки через vboxsf
, права на файлы и каталоги устанавливаются статически. Даже если вы используете команду chmod
, чтобы изменить эти права, изменения не будут применены, так как Windows не поддерживает Unix-подобное управление правами на уровне файловой системы.
Кроме того, ваши файлы доступны с uid=0
и gid=999
, что указывает на использование идентификаторов пользователя и группы, отличных от активного пользователя (uid=1000). Это тоже может оказывать влияние — хотя вы добавлены в группу vboxsf
, вы не являетесь владельцем этих файлов с точки зрения настроек монтирования.
Возможные решения
-
Сменить параметры монтирования: Для правильного отображения прав следует указать правильный
uid
иgid
пользователя, который будет работать с файлами. Это можно сделать с помощью таких параметров в вашей конфигурации VirtualBox. -
Использовать альтернативные методы: Если вам необходима более тонкая настройка прав доступа, возможно, стоит рассмотреть использование других методов доступа к файлам, например, через сетевые шаринги, такие как Samba, которые могут поддерживать более сложные модели прав.
-
Изменение поведения в зависимости от целей: Если ваша задача просто обмен файлами между Windows и Linux, и права доступа не критичны, возможно, просто примите текущую конфигурацию.
Этот подход позволит вам лучше управлять файлами и их правами доступа в среде с монтированными общими папками, обеспечивая эффективное взаимодействие между Windows и Linux.