запуск setfacl в бродячем общем каталоге

10

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

По моему Vagrantfile:

config.vm.share_folder("src", "/var/www", "../www")

fstabФайл моей виртуальной машины :

proc            /proc           proc    nodev,noexec,nosuid 0       0
/dev/mapper/ubuntu--1110-root /               ext4    acl,errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=4ed7eaaf-6f42-48ba-b5ed-f0c1df9add38 /boot           ext2    defaults        0       2
/dev/mapper/ubuntu--1110-swap_1 none            swap    sw              0       0

Пакет acl был установлен на виртуальной машине.

Когда я запускаю следующее в / var / www в соответствии с инструкциями по установке Symfony2:

 sudo setfacl -R -m u:apache:rwx -m u:username:rwx app/cache app/logs

Я получил:

Операция не поддерживается

Я могу запустить команду в любом другом каталоге или файле на ФС (вне общего каталога), и команда работает. Что дает?

Джош Нанкин
источник
Это не решило реальную проблему, но выполнило эту работу сейчас: stackoverflow.com/questions/7357120/…
Джош Нанкин

Ответы:

6

Чтобы обойти все проблемы с разрешениями в Symfony2 и Vagrant, самое простое решение - изменить пользователя и группу, работающую с apache, на vagrant. Для этого отредактируйте файл / etc / apache2 / envvars и замените строки 16 и 17 на следующие: export APACHE_RUN_USER = vagrant export APACHE_RUN_GROUP = vagrant Обратите внимание, что эти инструкции относятся к apache 2.2 в Ubuntu, обратитесь к вашей версии apache и OS, чтобы сделать так.

Если вы не хотите менять пользователя и группу apache, вы также можете смонтировать виртуальный диск и поместить на него свой проект symfony. Затем vagrant может изменить разрешения на этом диске. Смотрите эту ссылку для получения инструкций о том, как смонтировать виртуальный диск.

jfcartier
источник
3

Лучшее решение - переопределение атрибутов. Смотрите Opscode Wiki .

Например, в определении ролей:

override_attributes({
    "apache" => {
      "user" => "vagrant",
      "group" => "vagrant"
    }
})

У меня была та же проблема с Typo3 в общей папке, не удалось создать временные файлы.

Мартин Лауэр
источник