По какой-то причине мой gitolite не поставлялся с образцом файла конфигурации, и я не могу найти его нигде, я уверен, что ответ на этот вопрос есть в этом файле, если кто-то может найти мне копию, пожалуйста!!
В любом случае, формат конфигурационного файла gitolite достаточно прост, вот фрагмент из моего
gitolite conf
# please see doc/gitolite.conf.mkd for details on syntax and features
@nmscDevs = [email protected] [email protected] [email protected]
@buildMgr = [email protected] [email protected]
repo gitolite-admin
RW+ = gitadmin [email protected]
repo grindstone
RW+ = gitadmin
RW+ prod$ = @buildMgr
- prod$ = @nmscDevs
RW = @nmscDevs
У меня есть несколько открытых ключей в папке keydir:
keydir/
gitadmin.pub
[email protected]
Моя проблема в том, что gitolite игнорирует разрешения, установленные для отдельных пользователей. ничего не работает в репозитории (чтение, запись и т. д.), если я не даю пользователю gitadmin полный контроль. Тогда кажется, что все используют права пользователя gitadmin. Я клонирую репозитории вот так
git clone git@server:grindstone.git
но когда я пытаюсь клонировать что-то вроде этого
git clone '[email protected]'@server:grindstone.git
Мне предлагается ввести пароль. должен ли каждый отдельный пользователь иметь учетную запись на сервере, чтобы они могли подключиться к нему по ssh?
Как именно работают разрешения в gitolite? Я понял, что пользователю git нужна учетная запись для входа по ssh на сервер, а затем, когда gitolite вступает во владение, он использует электронную почту, которая передается вместе с запросом git, для определения разрешений, я ошибаюсь здесь? что мне не хватает?
Кстати, вот мой .ssh/config
host server
user git
hostname server
identityfile ~/.ssh/gitadmin
host server
user [email protected]
hostname server
identityfile ~/.ssh/id_rsa
Обновление: я обновился до последней версии gitolite, когда я пытаюсь сделать клон, я получаю это
$ git clone git@server:testing.git
Cloning into 'testing'...
FATAL: R any testing gitadmin DENIED by fallthru
(or you mis-spelled the reponame)
fatal: The remote end hung up unexpectedly
мой файл конфигурации теперь выглядит так:
repo testing
RW+ = william_slepecki
и моя конфигурация .ssh не изменилась. кроме того, у меня есть это в моем журнале
2012-05-08.13:01:13 19027 ssh ARGV=gitadmin SOC=git-upload-pack 'testing.git' FROM=10.99.5.146
2012-05-08.13:01:13 19027 access(testing, gitadmin, R, 'any'),-> R any testing gitadmin DENIED by fallthru
2012-05-08.13:01:13 19027 trigger,Writable,access_1,ACCESS_1,testing,gitadmin,R,any,R any testing gitadmin DENIED by fallthru
и вот верхний фрагмент моей глобальной конфигурации git
[user]
name = Willie Slepecki
email = [email protected]
почему это все еще настаивает на том, чтобы gitadmin был в репозитории, и почему он не использует william_slepecki? где именно это имя используется?
@
в имени пользователя. Или попробуйте его закодировать (%40). Но я все же предпочел бы вообще избежать этого. И какую версию gitolite вы используете? - person VonC   schedule 08.05.2012