Сообщество «Я и Ubuntu»
19 Май 2012, 05:13:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Добро пожаловать!
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: gitosis. Настройка прав доступа.  (Прочитано 1268 раз)
uscr
Новичок
*
Сообщений: 7


Просмотр профиля
« : 18 Апрель 2011, 12:00:18 »

Здравствуйте. Пытаюсь завести git в связке с gitosis.

Сделал такой конфиг:
Код:
[gitosis]
loglevel = DEBUG

[group gitosis-admin]
writable = gitosis-admin
members = gitadmin@github.from.ru

[group project-write]
writable = project
members = nazarovd

[group project-read]
readonly = project
members = testuser_reader

[group dev]
writable = dev
members = testuser_dev

Сделал тестовый локальный репозиторий. Пытаюсь залить на сервер:

Код: (nocolor)
nazarovd@workmashine:~/test_project/.git$ git push
DEBUG:gitosis.serve.main:Got command "git-receive-pack 'project.git'"
DEBUG:gitosis.access.haveAccess:Access check for 'nazarovd@github.from.ru' as 'writable' on 'project.git'...
DEBUG:gitosis.access.haveAccess:Stripping .git suffix from 'project.git', new value 'project'
DEBUG:gitosis.access.haveAccess:Access check for 'nazarovd@github.from.ru' as 'writeable' on 'project.git'...
DEBUG:gitosis.access.haveAccess:Stripping .git suffix from 'project.git', new value 'project'
DEBUG:gitosis.access.haveAccess:Access check for 'nazarovd@github.from.ru' as 'readonly' on 'project.git'...
DEBUG:gitosis.access.haveAccess:Stripping .git suffix from 'project.git', new value 'project'
ERROR:gitosis.serve.main:Repository read access denied
fatal: The remote end hung up unexpectedly

Что я делаю не так?
Записан
Zeboton
Администратор
Старожил
*****
Сообщений: 331


Просмотр профиля
« Ответ #1 : 18 Апрель 2011, 12:25:46 »

У меня есть подозрения, что не так. Можете показать файл ~/test_project/.git/config?
Записан
uscr
Новичок
*
Сообщений: 7


Просмотр профиля
« Ответ #2 : 18 Апрель 2011, 12:29:21 »

У меня есть подозрения, что не так. Можете показать файл ~/test_project/.git/config?
Пожалуйста:

Код:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = gituser@github.from.ru:project.git
fetch = +refs/heads/*:refs/remotes/origin/*

Я. кстати, ничего пока не трогал (всмысле, всё настроено по дефолту), если вам интересно.
Записан
Zeboton
Администратор
Старожил
*****
Сообщений: 331


Просмотр профиля
« Ответ #3 : 18 Апрель 2011, 12:35:31 »

Вот эта строчка меня настораживает:
Цитировать
Access check for 'nazarovd@github.from.ru' as 'readonly' on 'project.git'..
Попробуйте удалить на сервере
Код:
[group project-read]
readonly = project
members = testuser_reader
И попробовать ещё раз выполнить операцию.
Записан
uscr
Новичок
*
Сообщений: 7


Просмотр профиля
« Ответ #4 : 18 Апрель 2011, 12:50:42 »

Вот эта строчка меня настораживает:
Цитировать
Access check for 'nazarovd@github.from.ru' as 'readonly' on 'project.git'..
Попробуйте удалить на сервере
Код:
[group project-read]
readonly = project
members = testuser_reader
И попробовать ещё раз выполнить операцию.

Аналогично всё.
Кстати, а в чём отличие прав на "writable" от прав на "writeable"?
Записан
Zeboton
Администратор
Старожил
*****
Сообщений: 331


Просмотр профиля
« Ответ #5 : 18 Апрель 2011, 14:04:27 »

А пользователь на сервере имеет права на запись в папки и файлы проектов?
writeable — это ошибочное написание writable. То есть writeable использовать нельзя.
Записан
uscr
Новичок
*
Сообщений: 7


Просмотр профиля
« Ответ #6 : 18 Апрель 2011, 14:22:33 »

А пользователь на сервере имеет права на запись в папки и файлы проектов?
writeable — это ошибочное написание writable. То есть writeable использовать нельзя.
Да, имеет. Вы опередили меня на минуту. Я уже готовился запостить продолжение. Проблема была в том, что файл ключа назывался просто nazarovd, я изменил его на nazarovd@github.from.ru, соответственно изменил и конфиг и теперь вот что:

Код:
nazarovd@workmashine:~/test_project$ git push
DEBUG:gitosis.serve.main:Got command "git-receive-pack 'project.git'"
DEBUG:gitosis.access.haveAccess:Access check for 'nazarovd@github.from.ru' as 'writable' on 'project.git'...
DEBUG:gitosis.access.haveAccess:Stripping .git suffix from 'project.git', new value 'project'
DEBUG:gitosis.group.getMembership:found 'nazarovd@github.from.ru' in 'project-write'
DEBUG:gitosis.access.haveAccess:Access ok for 'nazarovd@rgithub.from.ru' as 'writable' on 'project'
DEBUG:gitosis.access.haveAccess:Using prefix 'repositories' for 'project'
DEBUG:gitosis.serve.main:Serving git-receive-pack 'repositories/project.git'
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'gituser@rgithub.from.ru:project.git'

На всякий случай сделал так:
Код:
nazarovd@workmashine:~/test_project$ git checkout master
Already on 'master'
« Последнее редактирование: 18 Апрель 2011, 22:42:59 от uscr » Записан
uscr
Новичок
*
Сообщений: 7


Просмотр профиля
« Ответ #7 : 18 Апрель 2011, 14:24:36 »

Нужно сделать git push origin master.
Теперь всё работает. Всем спасибо.
Записан
Zeboton
Администратор
Старожил
*****
Сообщений: 331


Просмотр профиля
« Ответ #8 : 18 Апрель 2011, 17:09:55 »

Да, с именем файла был и у меня косяк, я вроде писал об этом в своей заметке.

Добавьте в ~/test_project/.git/config:
Код:
[branch "master"]
remote = origin
merge = refs/heads/master
И сможете делать push и pull без указания кого куда. Для остальных ветвей всё так же.
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines Valid XHTML 1.0! Valid CSS!