Vagrant ustawia domyślne uprawnienia do udostępniania

32

Podczas uruchamiania błędnej instancji folder projektu jest montowany /vagrantautomatycznie. Jest jednak montowany z następującymi uprawnieniami

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

Potrzebuję go zamontować (przynajmniej) 0770, ale nie mogę znaleźć sposobu. Jeśli uruchomię polecenie mount, zobaczę to wyjście

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

Próbowałem obu chmodi chown/chgrp, ale nie działają one na tym zamontowanym folderze, więc mój użytkownik Apache nie może uzyskać dostępu do tego folderu. I przeczytać w instrukcji Vagrant że mogę zmienić właściciela i grupę, ale nie wspomina nic o pozwolenie.

Jak mogę to zrobić?

Inną opcją może być przejście na NFS, ale w ten sposób nie będzie działać na platformach Windows i będzie musiał edytować /etc/exportsplik lokalny i wymagałoby uprawnień roota, a także jest dość denerwujący, więc wolałbym nie wprowadzać tej zmiany.

Fabio
źródło

Odpowiedzi:

53

Rozwiązany z tą linią w moim pliku Vagantfile dla wersji 1.3.2 i nowszych:

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

Składnia przed wersją 1.2:

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

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

Dla Vagrant 1.2 poprawna składnia była następująca:

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

Kredyty: Aal

W wersji 1.3.2 i nowszych flagę „extra” w folderze synchronizowanym zmieniono na „mount_options”. Opcje muszą znajdować się w tablicy z każdą opcją jako osobnym ciągiem (w przeciwieństwie do obu opcji będących jednym ciągiem we wcześniejszych wersjach)

Fabio
źródło
6
Nie wiem dlaczego, ale potrzebuję nieco innej składni:config.vm.synced_folder ".", "/vagrant", :extra => "dmode=777,fmode=666"
Paul Voss
1
+1 Aal i +1 Fabio: folder_zakupu jest sprzed Vagrant v1.2, folder zsynchronizowany to Vagrant v1.2 i później. Używam puphpet.com do generowania mojego manifestu, ale musiałem dokonać tej korekty w pliku Vagrantfile.
therobyouknow
2
config.vm.synced_folder ".", "/ vagrant",: mount_options => ["dmode = 777, fmode = 666"] działało dla mnie w wersji 1.3.2.
Nobu,
3
W Vagrant 1.4.3 składnia znów jest nieco inna. Działa dla mnie następująca zmiana pliku Vagrantfile: config.vm.synced_folder "# {folder ['source']}", "# {folder ['target']}", id: "# {folder ['id']} ”, wpisz: nfs, mount_options: [„ dmode = 777 ”,„ fmode = 666 ”]
ChezFre