Mam pewien katalog, w którym jest projekt współdzielony przez wielu użytkowników. Ci użytkownicy używają SSH, aby uzyskać dostęp do tego katalogu i modyfikować / tworzyć pliki.
Ten projekt powinien być możliwy do zapisu tylko dla określonej grupy użytkowników: nazwijmy go „moja grupa”. Podczas sesji SSH wszystkie pliki / katalogi utworzone przez bieżącego użytkownika powinny domyślnie należeć do grupy „moja grupa” i mieć uprawnienia do zapisu w grupie.
Mogę rozwiązać problem uprawnień za pomocą umask
:
$ cd project
$ umask 002
$ touch test.txt
Plik „test.txt” można teraz zapisywać w grupach, ale nadal należy do mojej domyślnej grupy („mislav”, tak jak moja nazwa użytkownika), a nie do „mygroup”. Mogę chgrp
rekurencyjnie ustawić żądaną grupę, ale chciałem wiedzieć, czy istnieje sposób, aby ustawić grupę domyślnie, np. Umask zmienia domyślne uprawnienia podczas sesji.
Ten konkretny katalog jest udostępnionym repozytorium git z kopią roboczą, a ja chcę git checkout
i git reset
operacje, aby ustawić poprawną maskę i grupę dla nowych plików utworzonych w kopii roboczej. System operacyjny to Ubuntu Linux.
Aktualizacja: kolega sugeruje, że powinienem przejrzeć getfacl / setfacl POSIX ACL, ale poniższe rozwiązanie w połączeniu z umask 002
bieżącą sesją jest dla mnie wystarczające i jest o wiele prostsze.