web-dev-qa-db-fra.com

Vagrant définir des autorisations de partage par défaut

Lors de l'exécution d'une instance vagabonde, le dossier du projet est monté automatiquement sur /vagrant. Cependant est monté avec les autorisations suivantes

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

J'ai besoin qu'il soit monté avec (au moins) 0770 mais je ne trouve pas comment. Si j'exécute la commande mount, je vois cette sortie

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

J'ai essayé à la fois chmod et chown/chgrp, Mais ils ne fonctionneront pas sur ce dossier monté, donc mon utilisateur Apache ne peut pas accéder à ce dossier. Je lu dans le manuel Vagrant que je peux changer de propriétaire et de groupe mais cela ne mentionne rien sur la permission.

Comment puis je faire ça?

Une autre option pourrait être de passer à NFS, mais de cette façon, cela ne fonctionnera pas sur les plates-formes Windows et il doit modifier le fichier local /etc/exports Et cela nécessiterait des privilèges root et aussi c'est assez ennuyeux, donc je préférerais pas faire ce changement.

32
Fabio

Résolu avec cette ligne dans mon Vagantfile, pour v1.3.2 et versions ultérieures:

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

Syntaxe avant la version 1.2:

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

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

Pour Vagrant 1.2, la bonne syntaxe était:

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

Crédits: Aal

Pour la v1.3.2 et les versions ultérieures, l'indicateur "extra" du dossier synchronisé a été remplacé par "mount_options". Les options doivent être dans un tableau avec chaque option comme une chaîne distincte (par opposition aux deux options étant dans une seule chaîne dans les versions précédentes)

53
Fabio