Я недавно настроил новый Gitosis в моей частной сети на сервере Ubuntu. Все остальные клиенты в сети - это компьютер с Windows XP, кроме одного клиента Linux
У меня есть следующие настройки в gitosis.conf:
[group MyProjectTeam]
writable = MyProjectRepo
members = user1 user2 user3
Я также поместил файлы ключей user1.pub, user2.pub и user3.pub в keydir. Ключи были сгенерированы на сервере Ubuntu с использованием ssh-keygen и разосланы соответствующим пользователям. Копии открытых ключей помещаются в keydir.
Первые два пользователя - это пользователи Windows XP, которые используют msysgit + TortoiseGit для работы с хранилищем, и один пользователь находится на компьютере с Linux, чтобы получить доступ к хранилищу, используя версию git из командной строки по умолчанию.
Теперь все настроено хорошо, и все могут делать то, что от них ожидают, они могут тянуть, толкать, фиксировать - все выглядит хорошо, кроме случаев, когда мы проверяем журналы !!!
Используя user3 на компьютере с Linux, я попробовал команду "git log" и получил следующий вывод:
commit 1b249e239d270b814aab31eed7dc6f04ceceba32
Author: User3 <Admin@ubuntu-server.(none)>
Date: Fri Sep 11 07:26:58 2009 +0530
modifed by user3
commit 646f8b11a715273dc26280fc1da2507c997f981c
Author: unknown <Admin@.(none)>
Date: Fri Sep 11 07:10:56 2009 +0530
modified by user2
commit 9f86dc7a6bfafc1c1e520d6de3dac7c613ac85cb
Author: unknown <Admin@.(none)>
Date: Fri Sep 11 06:50:22 2009 +0530
modified
commit b1a3b64005795f9592aae05c422c70a03dbb9b58
Author: admin <Admin@ubuntu-server.(none)>
Date: Fri Sep 11 06:18:54 2009 +0530
test file added by admin
Это не правильно. Этот журнал должен быть в состоянии сказать мне, кто является автором Push. Я чувствую, что он дает правильные значения для пользователей Linux, так как их имя пользователя и адреса электронной почты также добавляются в информацию о пользователе Linux, но для клиентов Windows это не так, поэтому их имена не отображаются правильно. Но даже если я исправлю имена на компьютере с Windows, это может быть скомпрометировано путем эмуляции имен других пользователей, чтобы избежать этого, я не хочу полагаться на имена пользователей.
Я хочу, чтобы имя, указанное в файле SSH, отображалось там, или имя файла SSH, который использовался при добавлении в качестве автора.
Может быть, здесь может помочь pre-receive от git, но я не знаю, как его использовать ... Кто-нибудь может помочь?
Спасибо,
Ракеш
UPDATE:
Спасибо за ответы.
alexandrul, я не установил глобальные настройки, потому что я хочу, чтобы информация о каждом пользователе регистрировалась по-настоящему.
Squelch, вы правы, я вижу пользователей, которые опускают свои имена пользователей, но как мне заставить их сделать это. Я могу сказать им, чтобы они сконфигурировали проект своего локального проекта и задали имя пользователя и адрес электронной почты, но что, если кто-то использует поддельное имя пользователя или пытается использовать чужое имя пользователя и адрес электронной почты, в основном пытается персонифицировать другого?
Вот почему я подумал, почему бы не записать имя файла закрытого ключа, например, Я установил имя файла как user1.ppk для user1 аналогично user2.ppk для user2. в таких случаях, даже если кто-то пытается персонифицировать другого, ему это не удастся, потому что имена ключей, которые используются для проверки, скажут мне правду.
есть идеи ???
С уважением,
Ракеш
ОБНОВЛЕНИЕ 2:
Спасибо за помощь. Squelch, спасибо, что нашли время, чтобы объяснить во многих деталях. Я думаю, что паутина телевидения имеет много информации, читая ее прямо сейчас.
На данный момент я сделал одну вещь: попросил моих пользователей обновить их конфигурацию, включив имя пользователя и адрес электронной почты. Но мне нужно решить проблему, так как я не могу преследовать каждого и пользователя.
Я хочу что-то вроде SVN + SSH, где мы используем туннельное имя пользователя в файле ключей, и оно записывается с SVN.