Ich versuche einen git post-receive-Hook einzurichten, so dass, wenn ein Commit empfangen wird, ein weiterer Klon des Repository auf dem Rechner aktualisiert wird (dh tut eine git pull origin master
). Ich verwende Gitosis, um das Repository zu bedienen, und als solches glaube ich, dass ein Post-Receive-Hook als gitosis
Benutzer ausgeführt wird, während das Repository, das ich auf einem Empfang aktualisieren möchte, im Besitz von www-data
ist. Wie soll ich das machen?Git Post-Receive-Hook, um einen lokalen Klon zu aktualisieren, der einem anderen Benutzer gehört
Ich habe von setuid
Skripten gehört, aber ich bin mir nicht sicher, ob dies ein Sicherheitsrisiko sein könnte? Und wenn es kein Sicherheitsrisiko ist, wie würde ich das tun? Ich vermute, ich würde etwas tun, wie das Skript von www-data
Besitz machen und es World-Executable machen und das setuid Bit aktivieren? Ich denke, dieses Skript wäre ziemlich harmlos, da es nur das Repository aktualisiert, aber ich will sicher sein. Vielen Dank!
Edit: Gibt es eine Möglichkeit, dies mit sudo
zu tun? Wäre das sicherer als setuid
? Ich meine, ich glaube nicht, dass es viel Problem mit setuid
gibt, wenn der Benutzer nicht root ist, aber trotzdem scheint es, als müsste ich durch ein paar Ringe springen, um ein setuid
Skript zu bekommen.
Zweite Bearbeitung: Es scheint wie ich könnte in der Lage sein, dies mit einigen /etc/sudoers
Magie und sudo -u
zu tun. Vielleicht hätte ich das stattdessen auf ServerFault veröffentlichen sollen, aber zumindest habe ich etwas von diesem Unterfangen gelernt.
Ja, ich irgendwie dachte, es war besser geeignet für ServerFault nach der Einlieferung, aber ich sah in der Regel git Sachen hier. Sind Sie sicher, dass diese Zeile Gitosis als www-Daten ausführen lässt? Ich bin mir nicht sicher, ob es so ist.Im Moment versuche ich etwas in/etc/suiders zu tun: gitosis ALL = (www-data)/Pfad/zu/Skript und das Skript macht den Befehl git pull. – Ibrahim
Übrigens, wie bewegt man eine Frage wie diese zu serverfault? – Ibrahim
Die Züge werden von Moderatoren durchgeführt. – Kimvais