Vagrant set default share permissions

permissionsvagrantvirtualboxvirtualization

When running a vagrant instance the project folder is mounted on /vagrant automatically. However is mounted with the following permissions

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

I need it to be mounted with (at least) 0770 but I can't find how. If I run the mount command I see this output

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

I've tried both chmod and chown/chgrp, but they won't work on that mounted folder so my apache user can't access that folder. I read in Vagrant manual that I can change owner and group but it doesn't mention nothing about permission.

How can I do that?

Another option could be switch to NFS but in this way it won't work on Windows platforms and it need to edit local /etc/exports file and it would require root privileges and also it's pretty annoying, so I'd prefer to not make this change.

Best Answer

Solved with this line in my Vagantfile, for v1.3.2 and later:

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

Syntax before 1.2 version:

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

Credits: http://ubuntuforums.org/showthread.php?t=1434884

For Vagrant 1.2 the right syntax was:

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

Credits: Aal

For v1.3.2 and later the 'extra' flag on synced folder was changed to 'mount_options'. The options need to be in an array with each option as a separate string ( as opposed to both options being in a single string in previous versions )

Related Topic