32

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.

Fabio
  • 1,287
  • 2
  • 12
  • 18

1 Answers1

53

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 )

Fabio
  • 1,287
  • 2
  • 12
  • 18
  • 6
    Dunno why, but I need a slightly different syntax: `config.vm.synced_folder ".", "/vagrant", :extra => "dmode=777,fmode=666"` – Paul Voss May 10 '13 at 12:14
  • 1
    +1 Aal and +1 Fabio: share_folder is pre-Vagrant v1.2, synced_folder is Vagrant v1.2 and after. I use puphpet.com to generate my Manifest but had to do this adjustment in the Vagrantfile. – therobyouknow Aug 01 '13 at 09:10
  • 2
    config.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777,fmode=666"] worked for me on v1.3.2. – Nobu Sep 18 '13 at 07:59
  • 3
    In Vagrant 1.4.3 the syntax is a bit different yet again. The following change to Vagrantfile worked for me: config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{folder['id']}", type: nfs, mount_options: ["dmode=777","fmode=666"] – ChezFre Feb 12 '14 at 19:12