2016-03-04 27 views
5

Vagrant'ta Windows ana bilgisayarımdan konuka senkronize edilmiş bir klasör kurdum. Başlangıçta dosya izinleri yüzden aşağıdaki bağlama seçenekleri eklendi çok açıktı:Vagrant senkronize klasör izinleri

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

Ancak, bu klasör içinde tek bir dosya üzerinde yürütmek izinleri eklemek gerekir. chmod +x file'un bir etkisi yoktur. Paylaşılan klasördeki tek bir öğenin yürütülebilir/klasördeki öğelerin geri kalanı için farklı izinlere sahip olmasını sağlamanın bir yolu var mı? Sonunda

cevap

7

, ben iki çözümden ile geldi:

1) Kabul tüm dosyaları olmak yürütülebilir

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

2) klasörleri eşitlemek için rsync yöntemini kullanın

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

Her yöntemin kendine özgü dezavantajları vardır, ancak ilk kullanım durumumun uygulanması ve kabul edilmesi en hızlı olanıydı, ben de bununla gittim.

1

Klasör izinleriyle benzer bir sorun yaşıyordum. Mac OSX'te sanal kutu kullanıyorum. Sunucudaki bir önbellek dizinine yazamadığım sorunu gideren sahip ve grup seçeneklerini ekledim. Klasör ve dosya modlarını dahil etmek için güncelleyin.

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

Bu çözüm, özel kullanıcı ve/veya grup kutuda bulunamadığından yeni bir vagrant başlatması için çalışmayabilir. – MingalevME