Vagrant synced folder permissions

Andrew picture Andrew · Mar 4, 2016 · Viewed 15.7k times · Source

I have set up a synced folder in Vagrant, from my Windows host to the guest. Initially the permissions on the files were too open so I added the following mount options:

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

However, I need to add execute permissions on a single file within this folder. chmod +x file has no effect. Is there a way to allow a single item in a shared folder to be executable/have different permissions to the rest of the items in the folder?

Answer

Andrew picture Andrew · Mar 6, 2016

In the end, I came up with two solutions:

1) Accept all the files being executable

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

2) Use the rsync method to synchronise the folders

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

Each method has its own drawbacks, but the first was quickest to implement and acceptable for my use case, so I went with that.