Permissões de compartilhamento padrão do Vagrant

32

Ao executar uma instância vaga, a pasta do projeto é montada /vagrantautomaticamente. No entanto, é montado com as seguintes permissões

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

Preciso que ele seja montado com (pelo menos) 0770, mas não consigo encontrar como. Se eu executar o comando mount, vejo esta saída

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

Eu tentei os dois chmode chown/chgrp, mas eles não funcionarão nessa pasta montada, para que meu usuário apache não possa acessar essa pasta. Eu li no manual Vagrant que eu posso mudar de proprietário e grupo, mas não menciona nada sobre permissão.

Como eu posso fazer isso?

Outra opção pode ser mudar para o NFS, mas dessa forma não funcionará nas plataformas Windows e precisará editar o /etc/exportsarquivo local , exigiria privilégios de root e também é bastante irritante, por isso prefiro não fazer essa alteração.

Fabio
fonte

Respostas:

53

Resolvido com esta linha no meu Vagantfile, para v1.3.2 e posterior:

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

Sintaxe anterior à versão 1.2:

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

Créditos: http://ubuntuforums.org/showthread.php?t=1434884

Para o Vagrant 1.2, a sintaxe correta era:

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

Créditos: Aal

Para a v1.3.2 e posterior, o sinalizador 'extra' na pasta sincronizada foi alterado para 'mount_options'. As opções precisam estar em uma matriz com cada opção como uma sequência separada (em oposição a ambas as opções estarem em uma única sequência nas versões anteriores)

Fabio
fonte
6
Não sei porquê, mas eu preciso de uma sintaxe ligeiramente diferente:config.vm.synced_folder ".", "/vagrant", :extra => "dmode=777,fmode=666"
Paul Voss
1
+1 Aal e +1 Fabio: share_folder é pré-Vagrant v1.2, synced_folder é Vagrant v1.2 e depois. Eu uso puphpet.com para gerar meu manifesto, mas tive que fazer esse ajuste no arquivo Vagrant.
Therobyouknow
2
config.vm.synced_folder ".", "/ vagrant",: mount_options => ["dmode = 777, fmode = 666"] funcionou para mim na v1.3.2.
Nobu
3
No Vagrant 1.4.3, a sintaxe é um pouco diferente mais uma vez. A seguinte alteração no Vagrantfile funcionou para mim: config.vm.synced_folder "# {folder ['source']}", "# {folder ['target']}", id: "# {folder ['id']} ", tipo: nfs, mount_options: [" dmode = 777 "," fmode = 666 "]]
ChezFre