Заметка посвящена тем непоняткам что мне пришлось решить в процессе настройки gitosis на сервере. Инструкций по развертыванию навалом, все копи/пасты пары инструкций уж не известно чьего авторства. Те кого занесет сюда ветром поисковика будут знать что это и для чего.
Возможно, кому-то будет достаточно посмотреть на примеры в репозитарии (и сам репозитарий). Мне не хватило.
Задача: Настроить доступ по ключу. Причем отдельные пользователи должны иметь доступ только на чтение репозитария.
Приведу конфиг с комментариями. Конфиг фейковый, пишите свой, его цель только разъяснить способ решения задачи. Очень полезным будет и рассмотрение выше описанного примера в репозитарии проекта.
Файлы ключей доступа обязаны быть с расширением .pub
Возможно, кому-то будет достаточно посмотреть на примеры в репозитарии (и сам репозитарий). Мне не хватило.
Задача: Настроить доступ по ключу. Причем отдельные пользователи должны иметь доступ только на чтение репозитария.
Приведу конфиг с комментариями. Конфиг фейковый, пишите свой, его цель только разъяснить способ решения задачи. Очень полезным будет и рассмотрение выше описанного примера в репозитарии проекта.
Файлы ключей доступа обязаны быть с расширением .pub
- [gitosis]
- loglevel = DEBUG # дает не самый лучший, но помогающий вывод
- [group gitosis-admin] # кто управляет репозитариями через gitosis
- writable = gitosis-admin # имя репозитария!
- members = toxa@toxa-laptop # через пробел перечисляются пользователи
- # ПОЛЬЗОВАТЕЛИ
- # пользователи определяются по именам ключей в папочке с ключами,
- # т.е. toxa@toxa-laptop это файл публичного ключа keydir/toxa@toxa-laptop.pub
- # определим группу разработки.
- [group groupname]
- # Имя группы никак не связано с именем репозитария или пользователей
- # главное требование -- уникальность.
- # это имя будет использоваться для отладочного вывода или для перекрестных ссылок
- writeable = workrepname # через пробел можно указать список репозитариев
- # (без суфикса .git) куда можно писать
- members = toxa@toxa-laptop # через пробел указываются пользователи
- # которым разрешена запись в вышеописанные репозитарии
- # определим группу начальников которые любят читать код
- [group readonly_users]
- members = chief1 chief2 chief3 janitor
- # обратите внимание на отсутствие других директив здесь
- [group other_rep] # группа наблюдателей
- members = reader dsa-key-user @readonly_users
- # эти пользователи только читают описанные ниже репы
- # повторюсь, существуют ключи keydir/reader.pub и keydir/dsa-key-user
- # впрочем, если их не будет ошибки тоже не будет
- # @readonly_users -- это включение мемберов из другой группы.
- # Именно по этому в группе readonly_users только директива members
- readonly = readrepname
- # репы для описанных чуть выше пользователей. Они не смогут в них ничего писать.
- [group other] # другие
- members = reader dsa-key-user
- readonly = readrepname # readonly-репы для описанных чуть выше пользователей
- writable = otherwritablerepositary # но вот в эти репозитарии они писать могут.
P.S. Надеюсь, это сэкономит хотя бы кому-то несколько часов, что потратил я.
P.P.S. Как можно догадаться, проект движка в долгосрочной заморозке. Есть желание вернуться к нему летом, но загадывать не буду.
Комментариев нет:
Отправить комментарий