Я настроил гостевую систему VirtualBox Fedora 11 (i386) на моей хост-системе Fedora 11 (x86_64) с включенными общими папками. Я успешно смонтировал общую папку с помощью рекомендованной команды "mount -t vboxsf share /shareddir -o rw, exec, uid = 500, gid = 100". Я могу успешно читать и записывать файлы в общий ресурс из гостевой системы, но не могу установить бит выполнения для любого файла в общей папке из гостевой системы. Ничто в GoogleSpace, кажется, не решает мою проблему, не говоря уже о решении. Кстати, selinux отключен как на гостевой, так и на хостовой машине, а общая папка является файловой системой ext4.

1 ответ1

0

Решение:

  1. Смонтируйте VBoxGuestAdditions.iso (например, /media/cdrom0)
  2. mkdir vbox && cd vbox && /media/cdrom0/VBoxLinuxAdditions.run --tar -xf
  3. Отредактируйте module/vboxvfs/utils.c , измените строку 96 mode |= mode_set (IXUSR); в mode |= S_IXUSR; (обратите внимание на добавление префикса S_ ... в основном всегда устанавливайте исполняемый флаг)
  4. sudo ./install.sh vfs-module
  5. cd .. && rm -rf vbox

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

По крайней мере, это позволяет мне делать разработку в общем каталоге.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .