Berechtigungen in .git, damit Apache (PHP-Web-Frontend) ein Commit durchführen kann

1

Ich besitze ein git-basiertes Wiki-System mit einem PHP-Web-Frontend, das einen lokalen Apache2-Webserver verwendet. Aus PHP heraus starte ich, git commit ...was erlaubt sein sollte, Änderungen an den Wiki-Dateien vorzunehmen. Aufgrund der Benutzeridentität (meine private SSH-Schlüsseldatei) muss ich jedoch mit meinem Standardbenutzer ziehen und pushen. Welche Berechtigungen soll ich für den .gitOrdner und dessen Inhalt verwenden? Wenn ich die Standardberechtigungen verwende, darf Apache den Index nicht sperren und schreibt die Änderungen daher nicht fest.

Leemes
quelle

Antworten:

1

Anstatt Shell-Befehle aus Ihrer PHP-Anwendung auszuführen, empfehle ich, mit dem Schreiben Ihrer Webanwendung zu beginnen, um Git mithilfe einer PHP-Git-Bindungsbibliothek programmgesteuert zu verwenden. Zum Beispiel PHP-Git .

Dies hat viele Vorteile, zum Beispiel, dass die Befehlszeilenausgabe nicht analysiert werden muss, was sich in einer zukünftigen Version von Git ändern kann.

Über die Dateisystemberechtigungen melden Sie sich einfach auf dem Server an, auf dem der PHP-Anwendungsserver ausgeführt wird (dh su -l www-data -s /bin/bashauf Debian-basierten Systemen), und erstellen Sie ein öffentliches / privates Schlüsselpaar für diesen Benutzer. Behalten Sie alle Dateieigentümer für den Webbenutzer für diesen Klon des Repositorys.

gertvdijk
quelle