Ответ 1
Что ж, для не-гитоз/gitorious setup у вас есть два варианта:
- Предоставьте пользователям учетные записи linux с полными оболочками (паролями и/или ssh-ключами) для доступа к репозиторию git.
- Дайте людям доступ к учетной записи linux через их ключ ssh в
/home/ac/.ssh/authorized_keys2
, чья оболочка установлена в/usr/bin/git-shell
. Это означает, что они не смогут войти в систему как пользователь linux с оболочкой и сделать что-либо, кроме использования git на вашем компьютере.
В обоих случаях пользователю, о котором идет речь, требуется (читать | писать | оба) доступ к репозиторию git в соответствии с вашими потребностями либо в качестве пользователя, либо как часть группы.
Это может иметь смысл для вас иметь каталог / git/project, а затем иметь пользовательские репозитории там, так как наличие нескольких людей, нажавших в один и тот же репозиторий, обычно плохой идеей (люди слишком легко ломают вещи в моем опыте). Например, у вас может быть /srv/git/proj/proj-ninefingers.git
и иметь "освобождение" репо '/srv/git/proj/project.git`. Вероятно, что бы я сделал, если вы выполняете групповое усилие. Разрешения, оболочки и т.д. Должны быть установлены соответствующим образом.
Обратите внимание, что если вы хотите разрешить экспорт через протокол git только для чтения, вам необходимо убедиться, что настроенный пользователь git имеет доступ на чтение и что git-daemon-export-ok
существует в вашем голом репозитории. git update-server-info
также должен быть запущен до того, как gitweb
подберет репозиторий, если вы хотите его использовать.
Как говорили другие, git gc
оптимизирует репозиторий, и это хорошая идея делать это регулярно. Cron?
Наконец, существует множество фреймворков, чтобы упростить это (гитоз, величественный,...). Я не думаю, что это становится проще, чем обеспечить доступ к папке с помощью различных механизмов, но потом я.
В качестве примера моей установки, это только я, у меня есть:
$ cat /etc/passwd | grep git
git:x:1002:1002:Antony Vennard,,,:/home/git:/usr/bin/git-shell
gitdaemon:x:112:65534::/nonexistent:/bin/false
$ cat /etc/group | grep git
git:x:1002:
$ ls -l /srv/git
drwxr-xr-x 7 git git 4096 2010-09-12 23:31 bsdnt.git
drwxr-xr-x 7 git git 4096 2010-06-16 22:32 vforth.git
$ cat /home/git/.ssh/authorized_keys2
ssh-rsa somehex user1
ssh-rsa somehex user2
Это означает, что любой пользователь с закрытым ключом user1 может войти в систему и зафиксировать любой из этих репозиториев.