Vagrant fails to change file permissions in synced folder
Setting up a LAMP Vagrant sandbox, I kept running on different issues that boiled down to this: I could change/set permissions for files and directories outside the vagrant synced folder, and for files inside the synced folder. But not directories.
As it turns out, there is a constraint from VirtualBox on vagrant disallowing you to set permissions on the synced folder from inside the guest OS.
This was the initial setup in the Vagrant file:
config.vm.synced_folder "./app", "/var/www"
If you check the documentation for synced folders, you can see that some of the different options look promissing. To modify the owner/group
config.vm.synced_folder "./app", "/var/www", owner: "www-data", group: "www-data"
And then, using
mount_options assing the permissions for the synced from the vagrant file:
config.vm.synced_folder "./app", "/var/www", :owner=> 'www-data', :group=>'www-data', :mount_options => ['dmode=775', 'fmode=775']