Vagrant configurou permissões de compartilhamento padrão

31

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

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

Eu 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 chmod e chown/chgrp , mas eles não funcionam nessa pasta montada, então meu usuário do apache não pode acessar essa pasta. Eu leia no manual do Vagrant que eu posso mudar o dono e o grupo, mas ele não menciona nada sobre permissão.

Como posso fazer isso?

Outra opção pode ser mudar para o NFS, mas desta forma não funcionará nas plataformas Windows e precisará editar o arquivo /etc/exports local e exigiria privilégios de root e também é bastante irritante, então prefiro não faça essa mudança.

    
por Fabio 13.06.2012 / 20:32

1 resposta

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 antes da versão 1.2:

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

Créditos: link

Para o Vagrant 1.2, a sintaxe correta era:

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

Créditos: Aal

Para v1.3.2 e posteriores, o sinalizador 'extra' na pasta sincronizada foi alterado para 'mount_options'. As opções precisam estar em um array com cada opção como uma string separada (ao contrário de ambas as opções estarem em uma única string nas versões anteriores)

    
por 15.06.2012 / 19:30