У меня есть определенный каталог, в котором есть проект, который используется несколькими пользователями. Эти пользователи используют 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
текущим сеансом достаточно для меня и гораздо проще.