Vagrant mengatur izin berbagi default

32

Saat menjalankan instance gelandangan, folder proyek dipasang /vagrantsecara otomatis. Namun sudah terpasang dengan izin berikut

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

Saya perlu dipasang dengan (setidaknya) 0770 tapi saya tidak bisa menemukan caranya. Jika saya menjalankan perintah mount saya melihat output ini

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

Saya sudah mencoba keduanya chmoddan chown/chgrp, tetapi mereka tidak akan berfungsi pada folder yang dipasang itu sehingga pengguna apache saya tidak dapat mengakses folder itu. Saya membaca dalam manual Vagrant bahwa saya dapat mengubah pemilik dan grup tetapi tidak menyebutkan apa-apa tentang izin.

Bagaimana saya bisa melakukan itu?

Pilihan lain bisa beralih ke NFS tetapi dengan cara ini tidak akan bekerja pada platform Windows dan perlu mengedit /etc/exportsfile lokal dan itu akan memerlukan hak akses root dan juga itu cukup mengganggu, jadi saya lebih suka untuk tidak melakukan perubahan ini.

Fabio
sumber

Jawaban:

53

Dipecahkan dengan baris ini di Vagantfile saya, untuk v1.3.2 dan yang lebih baru:

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

Sintaks sebelum versi 1.2:

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

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

Untuk Vagrant 1.2 sintaks yang tepat adalah:

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

Penghargaan: Aal

Untuk v1.3.2 dan kemudian bendera 'ekstra' pada folder yang disinkronkan diubah menjadi 'mount_options'. Opsi harus dalam array dengan masing-masing opsi sebagai string terpisah (berbeda dari kedua opsi yang berada di string tunggal di versi sebelumnya)

Fabio
sumber
6
Tak tahu kenapa, tapi aku butuh sintaks yang sedikit berbeda:config.vm.synced_folder ".", "/vagrant", :extra => "dmode=777,fmode=666"
Paul Voss
1
+1 Aal dan +1 Fabio: share_folder adalah pra-Vagrant v1.2, synced_folder adalah Vagrant v1.2 dan setelahnya. Saya menggunakan puphpet.com untuk menghasilkan Manifest saya tetapi harus melakukan penyesuaian ini di Vagrantfile.
therobyouknow
2
config.vm.synced_folder ".", "/ vagrant",: mount_options => ["dmode = 777, fmode = 666"] bekerja untuk saya di v1.3.2.
Nobu
3
Dalam Vagrant 1.4.3 sintaksnya sedikit berbeda lagi. Perubahan berikut ke Vagrantfile bekerja untuk saya: config.vm.synced_folder "# {folder ['source']}", "# {folder ['target']}", id: "# {folder ['id']} ", ketik: nfs, mount_options: [" dmode = 777 "," fmode = 666 "]
ChezFre