2014-04-18 4 views
5

Ich kann aufgrund der Dateiberechtigungen und des Besitzes des Verzeichnisses/vagrant nicht auf meinen Apache-Server in vagrant zugreifen. Wie kann ich die Standardeigner- und Dateiberechtigungen für/vagrant ändern?Ändern der Berechtigungen für/vagrant

Die Standardberechtigungen sind als drwx 4096 ------ 1 Vagabund Vagabund folgt 18. April 19.53 vagrant

Welche Veränderungen in der Vagrantfile kann ich meine Standardberechtigungen außer Kraft machen?

Vagrant Version 1.5.3

Mein Vagrantfile

Vagrant.configure("2") do |config| 
    config.vm.provider :virtualbox do |vb| 
    #... 
    end 
config.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777","fmode=666"] 
end 

Antwort

0

Das Problem wurde vorübergehend durch Ändern der Berechtigungen für den Host-Ordner auf 755 und dann ein vagrant reload ausgeführt. Ich habe fast jede Syntax für config.vm.synced_folder ausprobiert, aber ohne Erfolg. Diese Befehle in meiner Vagrant-Datei scheinen beim Vagrant Up/Reload ignoriert zu werden.

0

Hier ist eine Option, ich sah, als ich versuchte, herauszufinden, wie ähnliche, etwas zu tun:

config.vm.synced_folder "./sites", "/var/sites/", id: "vagrant-root", 
    owner: "vagrant", 
    group: "www-data", 
    mount_options: ["dmode=775,fmode=664"] 
3

In Vagrant API Version 2 können Sie Ordner wie folgt freigeben:

config.vm.synced_folder "/Direct/Path/To/Your/Folder", "/Direct/Path/To/The/Vagrant/Folder", :owner => "www-data", :group => "www-data" 
config.vm.synced_folder "/Direct/Path/To/Another/Folder", "/Direct/Path/To/The/Other/Vagrant/Folder", :owner => "www-data", :group => "www-data" 

Sie würden diese Informationen in den Blöcken nach dem folgenden Text platzieren:

# Share an additional folder to the guest VM. The first argument is 
# the path on the host to the actual folder. The second argument is 
# the path on the guest to mount the folder. And the optional third 
# argument is a set of non-required options. 

Ich hatte das gleiche Problem, das Sie beschreiben, und ich es mit dieser Methode festgelegt. Hoffe das hilft. Weitere Informationen zu diesem Problem empfehle ich dringend RT(F)M.

+0

Danke für die Antwort! Ich habe fast jede mögliche Syntax für config.vm.synced_folder ausprobiert und immer noch kein Glück. – SuperJesus

+0

Tut mir leid zu hören, dass ich nie wirklich ein Problem mit Vagabund hatte. Wenn etwas versucht, Landstreicher zu aktualisieren?Neu installieren? Hoffe, alles geht gut. –

0

Um Ihre Frage zu

Welche Veränderungen in der Vagrantfile kann ich meine Standardberechtigungen außer Kraft setzen lassen beantworten?

Keine, die ich kenne, mehr als das, was Sie bereits bemerkt haben.

Um das Problem durch Ändern der Berechtigungen auf dem Host-Computer zu beheben. Eine Möglichkeit ist, die synchronisierte Ordnergruppe mit chmod -R g+w <synced folder> beschreibbar zu machen. Dann in der vagrant VM fügen Sie den Apache-Server-Benutzer (www-Daten auf Ubuntu) der Vagrant-Gruppe mit usermod -a -G www-data vagrant. Die -a ist sehr wichtig, da dies die neue Gruppe an die Liste der Gruppen für diesen Benutzer anhängen wird. Wenn es weggelassen wird, ersetzt die neue Gruppe die alte Liste.

Sie müssen auch sicherstellen, dass die Umask auf der vagrant VM auf 0022 gesetzt ist, mit umask 0022. Und dann den Apache-Server neu starten.

Möglicherweise müssen Sie auch das Sticky-Bit im synchronisierten Ordner auf dem Hostcomputer mit chmod -R +s <synced folder> festlegen.

Ich muss meinem Kollegen dafür danken, dass er mir diese Antwort gegeben hat.