2012-04-03 11 views
0

Ich habe gerade meine erste VPS & haben NGinx, Ruby, Rails & Gitolite eingerichtet.Chmod auf Git Post-Receive

Ich kann drücken und ziehen gut. Sobald ich jedoch dränge, wenn ich die URL besuche, bekomme ich einen 403 forbidden Fehler. Die Dateien lokal sind 755, aber es scheint, dass Git diese nicht speichert.

Ich habe ein paar Beiträge gefunden, die dies diskutieren (einschließlich dieser: git deploying project - file permissions - (chmod)) und die Antwort scheint zu sein, einen CHMOD 755 zu dem post-receive Hook hinzuzufügen.

Mein post-receive sieht derzeit wie:

#!/bin/sh 

GIT_WORK_TREE=/www/newrails git checkout -f 
chmod 755 -R /www/newrails 

Und ich chmod +x post-receive getan haben.

Allerdings, wenn ich schiebe ich den Fehler: remote: chmod: changing permissions of /www/newrails: Operation not permitted

Wie kann ich über die es gehen zu arbeiten, sei es durch die chmod in den Haken zu machen haben die Berechtigungen zu laufen, oder mit anderen Mitteln?

Antwort

4

Versuchen Sie, die chmod auf den Inhalt des Ordners arbeiten, anstatt den Ordner selbst:

chmod 755 -R /www/newrails/* 

Was wohl passiert, ist, dass der Benutzer den Haken wie ausgeführt wird (in der Regel der Benutzer, den Sie mit ssh sind für Git Zugriff) hat die Berechtigung, in den Ordner zu schreiben, aber nicht die Berechtigung, Modi für den Ordner selbst zu ändern.

+0

Ja das ist es! Ich kann nicht glauben, dass alles, was ich brauchte, 1 extra Charakter war :) Vielen Dank. (Es wird mich nicht für weitere 9 Minuten akzeptieren, aber dann werde ich). –