Ich habe ein bestimmtes Verzeichnis, in dem sich ein Projekt befindet, das von mehreren Benutzern geteilt wird. Diese Benutzer verwenden SSH, um Zugriff auf dieses Verzeichnis zu erhalten und Dateien zu ändern / zu erstellen.
Dieses Projekt sollte nur für eine bestimmte Benutzergruppe schreibbar sein: Nennen wir es "Meine Gruppe". Während einer SSH-Sitzung sollten alle vom aktuellen Benutzer erstellten Dateien / Verzeichnisse standardmäßig der Gruppe "mygroup" gehören und über gruppenschreibbare Berechtigungen verfügen.
Ich kann das Berechtigungsproblem lösen mit umask
:
$ cd project
$ umask 002
$ touch test.txt
Die Datei "test.txt" kann jetzt in Gruppen geschrieben werden, gehört jedoch weiterhin zu meiner Standardgruppe ("mislav", genau wie mein Benutzername) und nicht zu "mygroup". Ich kann chgrp
die gewünschte Gruppe rekursiv festlegen, aber ich wollte wissen, ob es eine Möglichkeit gibt, eine Gruppe implizit festzulegen, so wie umask die Standardberechtigungen während einer Sitzung ändert.
Dieses spezifische Verzeichnis ist ein freigegebenes Git-Repo mit einer Arbeitskopie, und ich möchte git checkout
und git reset
Operationen, um die richtige Maske und Gruppe für neue Dateien in der Arbeitskopie zu setzen. Das Betriebssystem ist Ubuntu Linux.
Update: Ein Kollege schlägt vor, dass ich mich mit getfacl / setfacl von POSIX ACL befassen soll, aber die Lösung unten in Kombination mit umask 002
in der aktuellen Sitzung ist gut genug für mich und viel einfacher.