2014-01-22 2 views
1

Я пытаюсь настроить сервер GIT с:gitolite с HTTP доступом через LDAP не передавать имя пользователя

  • HTTP-доступом, чтобы иметь возможность клонирования хранилищ, как это:

    мерзавец клон http://mygitserver/repository

  • есть веб-интерфейс (GitWeb), если это возможно с ограничениями на пользователя

  • контроля доступа на основе LDAP accoun ts

Пока у меня есть gitweb и работает; когда я получаю доступ

http://gitserver/ 

он запрашивает логин ldap и когда я предоставляю это; он показывает все репозитории (даже gitolite-администратор хранилища ... не так хорошо)

При попытке клонировать, я получаю ошибку:

fatal: http://gitserver/<reponame>.git/info/refs not valid: is this a git repository? 

Я впилась в него, и я узнал, что gitolite -suexec-wrapper.sh не получает имя пользователя LDAP; поэтому gitolite не может предоставить доступ, так как имя пользователя пуст ... любые идеи?

вот моя конфигурация:

мой конфигурационный файл Apache выглядит так, как здесь: http://gitolite.com/gitolite/g2/ggshb.html. Самое интересное заключается в следующем:

ScriptAliasMatch \ 
     "(?x)^/(.*/(HEAD | \ 
         info/refs | \ 
         objects/(info/[^/]+ | \ 
           [0-9a-f]{2}/[0-9a-f]{38} | \ 
           pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ 
         git-(upload|receive)-pack))$" \ 
     /srv/www/bin/gitolite-suexec-wrapper.sh/$1 

по той или иной причине параметр $ 1 не передается или пусто .... в журнале апача я получаю эти строки:

10.1.86.100 - - [22/Jan/2014:18:09:52 +0100] "GET /git/<reponame>.git/info/refs?service=git-upload-pack HTTP/1.1" 401 - "-" "git/1.8.4" 
601 10.1.86.100 - - [22/Jan/2014:18:09:57 +0100] "GET /git/<reponame>.git/info/refs?service=git-upload-pack HTTP/1.1" 401 - "-" "git/1.8.4" 
602 10.1.86.100 - chris.maes [22/Jan/2014:18:09:57 +0100] "GET /git/<reponame>.git/info/refs?service=git-upload-pack HTTP/1.1" 200 120 "-" "git/1.8.4" 

о да ; моя среда: OpenSUSE 13.1 gitolite 2.3.1 мерзавец 1.8.4

+1

Любая причина использования старого гитолита 2.x? Что касается Apache, я не использую 'gitolite-suexec-wrapper.sh': см. Https://github.com/VonC/compileEverything/blob/2801e9f5366185b532300fe07e434b60a5cea030/apache/env.conf.tpl#L149-L165 – VonC

+0

Я просто добавил найденный репозиторий; это был последний, который я нашел ... Может ли это иметь большое значение? –

+0

Самый последний из них - https://github.com/sitaramc/gitolite: 3.5.1, и его намного проще установить/поддержать/обновить. Для этого не требуется 'gitolite-suexec-wrapper.sh': вы можете напрямую вызвать скрипт' gitolite-shell', как показано в моей конфигурации Apache. – VonC

ответ

1

Два раствора:

1/Apache + LDAP, вызывая gitolite-shell (gitolie V3)

ScriptAlias /hgit/ @[email protected]/sbin/gitolite-shell/ 
    SetEnv GIT_HTTP_BACKEND "@[email protected]/usr/local/apps/git/libexec/git-core/git-http-backend" 
    <FilesMatch "\.(cgi|shtml|phtml|php)$"> 
     SSLOptions +StdEnvVars 
    </FilesMatch> 
    <Location /hgit> 
     SSLOptions +StdEnvVars 
     Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch 
     #AllowOverride All 
     order allow,deny 
     Allow from all 
     AuthName "LDAP authentication for ITSVC Smart HTTP Git repositories" 
     AuthType Basic 
     AuthBasicProvider myldap companyldap 

2/Или GitLab, который имел аутентификацию LDAP: «setting up gitlab LDAP-authentication without special gitlab user»
См. config gitlab.yml ldap section.

+0

Waw, GitLab + битнаби - это откровение !!! Я установил его с помощью установщика bitnabi: GitLab был запущен и работает в кратчайшие сроки с доступом LDAP; Мне все еще нужно сделать некоторую конфигурацию для доступа пользователей и репозиториев, но до сих пор я блеф !!! –

Смежные вопросы