2016-03-04 4 views
5

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

config.vm.synced_folder "../my-folder", "/home/vagrant/my-folder", 
    mount_options: ["dmode=775,fmode=664"] 

Однако, мне нужно добавить разрешения на выполнение одного файла в этой папке. chmod +x file не действует. Есть ли способ разрешить выполнение одного элемента в общей папке/иметь разные разрешения для остальных элементов в папке?

ответ

7

В конце концов, я пришел с двумя решениями:

1) принимают все файлы быть исполняемым

config.vm.synced_folder "../my-folder", "/home/vagrant/my-folder", 
    mount_options: ["dmode=775,fmode=777"] 

2) Используйте метод Rsync для синхронизации папок

config.vm.synced_folder "../ansible-provision", "/home/vagrant/ansible", type: "rsync", 
    rsync__exclude: ".git/" 

Каждый метод имеет свои недостатки, но первый из них был самым быстрым для реализации и приемлемым для моего варианта использования, поэтому я пошел с этим.

1

У меня была аналогичная проблема с разрешениями на папку. Я использую virtualbox на Mac OSX. Я добавил параметры владельца и группы, которые исправили мою проблему неспособности записать в каталог кэша на сервере. Обновите, чтобы включить режим папки и файла.

srv.vm.synced_folder server["synced_folder"]["src"], server["synced_folder"]["dest"], create: true, group:'vagrant', owner:'www-data', mount_options: ["dmode=775,fmode=664"] 
+0

Это решение может не работать для новой инициализации бродяг, поскольку пользовательский пользователь и/или группа могут отсутствовать в поле. – MingalevME