У меня есть определенный каталог, в котором есть проект, который используется несколькими пользователями. Эти пользователи используют SSH для получения доступа к этому каталогу и изменения / создания файлов.
Этот проект должен быть доступен для записи только определенной группе пользователей: давайте назовем его «mygroup». Во время сеанса SSH все файлы / каталоги, созданные текущим пользователем, должны по умолчанию принадлежать группе «mygroup» и иметь права на запись в группу.
Я могу решить проблему с разрешениями umask:
$ cd project
$ umask 002
$ touch test.txt
Файл «test.txt» теперь доступен для записи в группе, но все еще принадлежит моей группе по умолчанию («mislav», так же, как мое имя пользователя), а не «mygroup». Я могу chgrpрекурсивно установить желаемую группу, но я хотел знать, есть ли способ неявной установки некоторой группы, например, когда umask изменяет разрешения по умолчанию во время сеанса.
Этот конкретный каталог является общим репозиторием git с рабочей копией, и я хочу git checkoutи с помощью git resetопераций установить правильную маску и группу для новых файлов, созданных в рабочей копии. ОС Ubuntu Linux.
Обновление: коллега предлагает мне взглянуть на getfacl / setfacl POSIX ACL, но приведенное ниже решение в сочетании с umask 002текущим сеансом достаточно для меня и гораздо проще.