2012-10-20 13 views
9

Muss verhindern, dass root ein git (Arbeits) -Verzeichnis aktualisiert. Das Schließen umfasst, ist aber nicht beschränkt auf: das Verhindern unerwünschter Besitzänderungen des Dateisystems.Wie verhindert man, dass root den Git Pull ausführt?

Keiner der Git-Haken scheint verhindern ein holen/zusammenführen/ziehen, bevor es passiert, ähnlich wie vor dem Festschreiben Haken. Oder zumindest nichts, was ich hier (oder in man-Seite) sehe: http://www.analysisandsolutions.com/code/git-hooks-summary-cheat-sheet.htm

Gedanken?

+4

* "verhindern root [...]" * - Ich glaube nicht, dass das möglich ist. – poke

+0

Warum? Was ist das eigentliche Problem, das Sie vermeiden möchten? Wenn Sie verhindern möchten, dass Dateien im Repository von root verwaltet werden, ziehen Sie nicht, während Sie als root angemeldet sind. – meagar

+1

@meagar Bereits dabei. Leider in einer Teamumgebung, in der viele Leute root/sudo Zugriff haben. Sie möchten Menschen davon abhalten, sich als Root anzumelden und versehentlich Dinge zu ändern, die sie nicht tun sollten. Manchmal vergessen die Leute alte Gewohnheiten (wir benötigten root/sudo privs für Updates, aber nicht mehr), loggen sich als root ein und tun Dinge, die sie nicht tun sollten. –

Antwort

4

Der einzige Weg, ich sah dies nicht gelöst, aber zumindest „entschärft“ wurde durch eine Wrapper für den git Befehl:

Alle git Befehle durch diesen Wrapper gehen die Wurzel, wenn der Benutzer-ID geht nicht.

8

Ändern Sie /root/.bashrc, um ein neues Verzeichnis an den Anfang der PATH hinzuzufügen. Fügen Sie dort ein Shell-Skript namens git hinzu, das $1 als einen der wenigen schreibgeschützten Befehle (show/status/log/rev-list usw.) testet und /usr/bin/git "[email protected]" aufruft, wenn der Befehl akzeptabel ist. Dies verhindert, dass jemand in Ihrem Team versehentlich git pull als Root ausführt. Wenn Sie sich Sorgen machen, dass sie es absichtlich tun, haben Sie größere Probleme ...

+5

Besser noch, lassen Sie den Befehl nur eine Fehlermeldung wie 'Bitte nicht git als root ausführen '. –

+2

In meinem Fall ist es der Manager meiner Abteilung, der 'sudo su' macht, wenn er keine Erlaubnis hat, etwas zu tun. Dann macht er einen git pull und zerlegt meine Akten. Ich will nur eine Fehlermeldung für jeden Git-Befehl, der sagt "Nie git Befehle als root ausführen! Stoppen Sie meine Dateiberechtigungen zu versauen!" – Mnebuerquo

Verwandte Themen