Vagrant imposta le autorizzazioni di condivisione predefinite


32

Quando si esegue un'istanza di Vagrant, la cartella del progetto viene montata /vagrantautomaticamente. Tuttavia è montato con le seguenti autorizzazioni

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

Ho bisogno che sia montato con (almeno) 0770 ma non riesco a trovare come. Se eseguo il comando mount vedo questo output

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

Ho provato entrambi chmode chown/chgrp, ma non funzioneranno su quella cartella montata, quindi il mio utente apache non può accedere a quella cartella. Ho letto nel manuale di Vagrant che posso cambiare proprietario e gruppo, ma non menziona nulla sull'autorizzazione.

Come lo posso fare?

Un'altra opzione potrebbe essere passare a NFS ma in questo modo non funzionerà su piattaforme Windows e dovrà modificare i /etc/exportsfile locali e richiederebbe i privilegi di root ed è anche piuttosto fastidioso, quindi preferirei non apportare questa modifica.

Risposte:


53

Risolto con questa riga nel mio Vagantfile, per v1.3.2 e successive:

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

Sintassi precedente alla versione 1.2:

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

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

Per Vagrant 1.2 la sintassi corretta era:

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

Crediti: Aal

Per v1.3.2 e successive il flag 'extra' sulla cartella sincronizzata è stato cambiato in 'mount_options'. Le opzioni devono essere in un array con ogni opzione come stringa separata (al contrario di entrambe le opzioni in una singola stringa nelle versioni precedenti)


6
Non so perché, ma ho bisogno di una sintassi leggermente diversa:config.vm.synced_folder ".", "/vagrant", :extra => "dmode=777,fmode=666"
Paul Voss,

1
+1 Aal e +1 Fabio: share_folder è pre-Vagrant v1.2, synced_folder è Vagrant v1.2 e versioni successive. Uso puphpet.com per generare il mio manifest ma ho dovuto fare questo aggiustamento nel Vagrantfile.
therobyouknow

2
config.vm.synced_folder ".", "/ vagrant",: mount_options => ["dmode = 777, fmode = 666"] ha funzionato per me su v1.3.2.
Nobu,

3
In Vagrant 1.4.3 la sintassi è di nuovo leggermente diversa. La seguente modifica a Vagrantfile ha funzionato per me: config.vm.synced_folder "# {folder ['source']}", "# {folder ['target']}", id: "# {folder ['id']} ", digitare: nfs, mount_options: [" dmode = 777 "," fmode = 666 "]
ChezFre,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.