2016-03-04 7 views
5

Ich habe einen synchronisierten Ordner in Vagrant eingerichtet, von meinem Windows-Host zum Gast. Zunächst werden die Berechtigungen für die Dateien waren zu offen, so habe ich die folgenden Mount-Optionen hinzugefügt:Vagrant synchronisierte Ordnerberechtigungen

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

Allerdings muss ich auf eine einzelne Datei in diesem Ordner ausführen Berechtigungen hinzufügen. chmod +x file hat keine Wirkung. Gibt es eine Möglichkeit, ein einzelnes Element in einem freigegebenen Ordner ausführbar zu machen/unterschiedliche Berechtigungen für die restlichen Elemente im Ordner zu haben?

Antwort

7

Am Ende kam ich mit zwei Lösungen bis:

1) nehmen alle Dateien ausführbar

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

2) Verwenden Sie die rsync Methode, um die Ordner zu synchronisieren

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

Jede Methode hat ihre eigenen Nachteile, aber die erste war am schnellsten zu implementieren und akzeptabel für meinen Anwendungsfall, also ging ich damit.

1

Ich hatte ein ähnliches Problem mit Ordnerberechtigungen. Ich benutze virtualbox auf Mac OSX. Ich habe die Besitzer- und Gruppenoptionen hinzugefügt, die mein Problem, nicht in ein Cache-Verzeichnis auf dem Server schreiben zu können, behoben haben. Aktualisieren Sie, um Ordner- und Dateimodi einzuschließen.

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

Diese Lösung funktioniert möglicherweise nicht für eine neue Initialisierung von Vagrant, da der benutzerdefinierte Benutzer und/oder die benutzerdefinierte Gruppe möglicherweise nicht in der Box vorhanden sind. – MingalevME