Dies klingt so, als ob für den Benutzer, den Sie ausführen, die Standardgruppe festgelegt ist yuri
. Sie können dies folgendermaßen bestätigen:
$ id -a
uid=1000(saml) gid=1000(saml) groups=1000(saml),10(wheel),989(wireshark)
Die UID Ihres Kontos lautet wie folgt: uid=1000(saml)
Die Standardgruppe ist git=1000(saml)
und alle sekundären Gruppen sind danach.
HINWEIS: Wenn Sie möchten, dass der Git-Klon einen bestimmten Besitz hat, haben Sie mindestens zwei Optionen.
Option 1
Legen Sie ein übergeordnetes Verzeichnis mit den gewünschten Berechtigungen fest:
$ mkdir topdir
$ chgrp http topdir
$ chmod g+s topdir
$ cd topdir
$ git clone ....
Dies zwang das Verzeichnis topdir
, alle untergeordneten Verzeichnisse darunter zu erzwingen, damit die Gruppe http
angewendet wird. Dies funktioniert im Großen und Ganzen, kann jedoch zu Problemen führen, da beim Verschieben von Dateien in diesen Git-Klon-Arbeitsbereich die Gruppen dieser Dateien durch die oben vorgenommenen Änderungen nicht erzwungen werden.
Option 2
Ändern Sie vor der Arbeit Ihre Standardgruppe http
wie folgt:
$ newgrp http
$ git clone ...
Diese Methode erzwingt, dass für alle neu erstellten Dateien die Gruppe http
anstelle Ihrer normalen Standardgruppe festgelegt yuri
wird. Dies funktioniert jedoch nur, solange Sie daran denken, newgrp
vor der Arbeit in diesem Arbeitsbereich eine auszuführen.
Andere Optionen
Wenn beides nicht akzeptabel erscheint, können Sie versuchen, stattdessen ACLs im git-Arbeitsbereichsverzeichnis zu verwenden. Diese werden in mehreren Fragen und Antworten auf dieser Website erläutert, z. B. in den Fragen und Antworten mit dem Titel: Neue Dateien zum Erben von Gruppenberechtigungen unter Linux .
newgrp
. Ändert es dann die Gruppe nur für die aktuelle Shell? Und schließlich ging es darum, nur bestimmte Dateien / Verzeichnisse für das Schreiben per Webserver zugänglich zu machen. Schließlich sollte ich sie wahrscheinlich manuell reparieren oder einengit
Haken aufstellen ...Die Lösung, die ich verwende, besteht darin , den Befehl als Benutzer auszuführen, der über die Berechtigungen verfügt, die Sie behalten möchten:
Dies verhindert, dass sich die Berechtigungen ändern. Ich verwende es, wenn ich Git-Repositorys auf meinem VPS aktualisiere, während die Dateiberechtigungen für den Webserver-Benutzer festgelegt bleiben.
Siehe auch die gleiche Frage hier .
quelle