Назад | Перейти на главную страницу

Vagrant устанавливает разрешения для общего доступа по умолчанию

При запуске бродячего экземпляра папка проекта монтируется на /vagrant автоматически. Однако монтируется со следующими разрешениями

# ll -d /vagrant
drwx------ 1 vagrant vagrant 612 Jun 13 14:41 /vagrant/

Мне нужно, чтобы он был установлен (по крайней мере) с 0770, но я не могу найти, как это сделать. Если я запускаю команду mount, я вижу этот вывод

# mount
v-root on /vagrant type vboxsf (uid=1000,gid=100,rw)

Я пробовал оба chmod и chown/chgrp, но они не будут работать с этой смонтированной папкой, поэтому мой пользователь apache не может получить доступ к этой папке. я читайте в руководстве Vagrant что я могу сменить владельца и группу, но ничего не говорится о разрешениях.

Как я могу это сделать?

Другим вариантом может быть переключение на NFS, но в этом случае он не будет работать на платформах Windows, и его нужно отредактировать локально. /etc/exports файл, и для этого потребуются привилегии root, а также это довольно раздражает, поэтому я бы предпочел не вносить это изменение.

Решено этой строкой в ​​моем Vagantfile для v1.3.2 и новее:

config.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777","fmode=666"]

Синтаксис до версии 1.2:

config.vm.share_folder("v-root", "/vagrant", ".", :extra => 'dmode=770,fmode=770')

Кредиты: http://ubuntuforums.org/showthread.php?t=1434884

Для Vagrant 1.2 правильный синтаксис был:

config.vm.synced_folder ".", "/vagrant", :extra => "dmode=777,fmode=666"

Кредиты: Аал

Для v1.3.2 и более поздних версий флаг «extra» для синхронизированной папки был изменен на «mount_options». Параметры должны быть в массиве, причем каждый параметр должен быть отдельной строкой (в отличие от того, что оба параметра были в одной строке в предыдущих версиях).