Я в настоящее время занимаюсь расследованиями, возможно ли служить bzr в установке, подобной тому, что gitolite делает для мерзавца. Это означает единственную учетную запись Unix с различными пользователями, управляемыми через их ssh открытые ключи. Я был бы рад интегрировать это с gitolite, в этом случае управление пользователями и создание подходящего ~/.ssh/authorized_keys
мог быть делегирован. Это заботилось бы об аутентификации.
То, что имеет меня взволнованный, является авторизацией. Насколько я вижу его, bzr serve
из поля имеет только --directory
флаг для обеспечения управления доступом. Это работает хорошо с обеспечением каждому пользователю его собственного набора репозиториев, или для присвоения пользователей группам и предоставлению каждой группе единственного фиксированного набора репозиториев. С немного большим количеством работы можно использовать один каталог на пользователя, но использовать символьные ссылки для предоставления совместного доступа к репозиториям для многочисленных пользователей.
Тем не менее, это - все еще намного меньше, чем, что может сделать gitolite. Используя этот подход, не возможно предоставить доступ только для чтения отдельных пользователей к некоторым, но доступ для чтения-записи к другим репозиториям. И при этом не возможно предотвратить нажатия перезаписи или создание новых репозиториев в каталогах пользователя.
Могло бы случиться так, что эти опции еще не были реализованы. В связанном вопросе о Переполнении стека я спрашиваю о способах реализовать это сам. Здесь на Отказе сервера я концентрируюсь на существующих решениях. Есть ли любые готовые к использованию решения, которые обеспечивают bzr serve
с более мелкомодульным управлением доступом, чем простое --directory
ограничение? Абсолютно интегрированное решение как gitolite было бы самым интересным, но даже некоторое расширение, которое могло бы быть настроено для обращения к одной из проблем, которые я упомянул, будет хорошо знать.
Если вы не настроены на одного пользователя, вы можете рассмотреть следующую настройку:
chmod g + s < repo>
). setfacl -R -md: u: UID: rwX ; setfacl -R -mu: UID: rwX
). Это гарантирует, что владелец всегда может удалить. Таким образом, вы можете управлять доступом для чтения с помощью «символическая ссылка существует» и доступом для записи с помощью «пользователя в группе». Если вы хотите реализовать несколько главных пользователей для репозитория, вы можете добавить дополнительные d: u: UID: rwX, u: UID: rwX, по одному для каждого дополнительного мастера.