2016-03-04 16 views
5

Ho impostato una cartella sincronizzata in Vagrant, dal mio host Windows al guest. Inizialmente i permessi sui file erano troppo aperto così ho aggiunto le seguenti opzioni di montaggio:Vagrant autorizzazioni cartella sincronizzata

config.vm.synced_folder "../my-folder", "/home/vagrant/my-folder", 
    mount_options: ["dmode=775,fmode=664"] 

Tuttavia, ho bisogno di aggiungere i permessi di esecuzione su un singolo file all'interno di questa cartella. chmod +x file non ha alcun effetto. C'è un modo per consentire a un singolo elemento in una cartella condivisa di essere eseguibile/avere permessi diversi per il resto degli elementi nella cartella?

risposta

7

Alla fine, mi si avvicinò con due soluzioni:

1) accettare tutti i file essendo eseguibile

config.vm.synced_folder "../my-folder", "/home/vagrant/my-folder", 
    mount_options: ["dmode=775,fmode=777"] 

2) Utilizzare il metodo rsync per sincronizzare le cartelle

config.vm.synced_folder "../ansible-provision", "/home/vagrant/ansible", type: "rsync", 
    rsync__exclude: ".git/" 

Ogni metodo ha i suoi svantaggi, ma il primo è stato il più veloce da implementare e accettabile per il mio caso d'uso, quindi sono andato con quello.

1

Stavo avendo un problema simile con i permessi della cartella. Sto usando virtualbox su Mac OSX. Ho aggiunto il proprietario e le opzioni di gruppo che hanno risolto il mio problema di non essere in grado di scrivere in una directory cache sul server. Aggiornamento per includere le modalità cartella e file.

srv.vm.synced_folder server["synced_folder"]["src"], server["synced_folder"]["dest"], create: true, group:'vagrant', owner:'www-data', mount_options: ["dmode=775,fmode=664"] 
+0

Questa soluzione potrebbe non funzionare per una nuova inizializzazione di vagabondo perché l'utente e/o il gruppo personalizzato potrebbero non esistere nella casella. – MingalevME