Vagrant hat die Standardfreigabeberechtigungen festgelegt

32

Beim Ausführen einer Vagrant-Instanz wird der Projektordner /vagrantautomatisch bereitgestellt. Wird jedoch mit den folgenden Berechtigungen gemountet

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

Ich brauche es mit (mindestens) 0770 montiert werden, aber ich kann nicht finden, wie. Wenn ich den Befehl mount ausführe, wird diese Ausgabe angezeigt

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

Ich habe beide chmodund ausprobiert chown/chgrp, aber sie funktionieren nicht in diesem bereitgestellten Ordner, sodass mein Apache-Benutzer nicht auf diesen Ordner zugreifen kann. Ich habe im Vagrant-Handbuch gelesen, dass ich den Besitzer und die Gruppe ändern kann, aber es wird nichts über die Erlaubnis erwähnt.

Wie kann ich das machen?

Eine andere Möglichkeit könnte sein, auf NFS zu wechseln, aber auf diese Weise funktioniert es nicht auf Windows-Plattformen und es muss eine lokale /etc/exportsDatei bearbeitet werden und es würde Root-Rechte erfordern und es ist auch ziemlich ärgerlich, daher würde ich es vorziehen, diese Änderung nicht vorzunehmen.

Fabio
quelle

Antworten:

53

Mit dieser Zeile in meinem Vagantfile für v1.3.2 und höher gelöst:

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

Syntax vor Version 1.2:

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

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

Für Vagrant 1.2 lautete die richtige Syntax:

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

Credits: Aal

Ab Version 1.3.2 wurde das Flag "extra" für den synchronisierten Ordner in "mount_options" geändert. Die Optionen müssen sich in einem Array befinden, wobei jede Option als separate Zeichenfolge vorliegt (im Gegensatz zu beiden Optionen in früheren Versionen in einer einzelnen Zeichenfolge).

Fabio
quelle
6
Keine Ahnung warum, aber ich brauche eine etwas andere Syntax:config.vm.synced_folder ".", "/vagrant", :extra => "dmode=777,fmode=666"
Paul Voss
1
+1 Aal und +1 Fabio: share_folder ist älter als Vagrant v1.2, synced_folder ist älter als Vagrant v1.2. Ich benutze puphpet.com, um mein Manifest zu generieren, musste diese Anpassung jedoch im Vagrantfile vornehmen.
Therobyouknow
2
config.vm.synced_folder ".", "/ vagrant",: mount_options => ["dmode = 777, fmode = 666"] hat für mich in Version 1.3.2 funktioniert.
Nobu
3
In Vagrant 1.4.3 ist die Syntax noch einmal ein bisschen anders. Die folgende Änderung an Vagrantfile hat bei mir funktioniert: config.vm.synced_folder "# {folder ['source']}", "# {folder ['target']}", id: "# {folder ['id']} ", Typ: nfs, mount_options: [" dmode = 777 "," fmode = 666 "]
ChezFre