Я устанавливаю гитолит из пакетов CentOS для моего клиента. Пакет создает gitolite
user, который будет явно виден во время операции "git clone". Клиент хочет использовать «git», а не «gitolite», на случай, если позже мы перейдем к чему-то более интересному. Я не очень хорошо знаком с CentOS, поэтому не хочу пытаться собрать пакет самостоятельно из исходников. Мне интересно, есть ли способ сделать одно из следующего:
yum update
операцииБуду признателен за подробные инструкции или указатели.
Чтобы добавить пользовательский git с псевдонимом для gitolite, вы можете сделать что-то вроде следующего
[ec2-user@ip-10-170-94-162 ~]$ sudo useradd -m foo
[ec2-user@ip-10-170-94-162 ~]$ getent passwd foo
foo:x:500:502::/home/foo:/bin/bash
[ec2-user@ip-10-170-94-162 ~]$ sudo useradd -o -d/home/foo -u500 -g502 -s/bin/bash -M foo2
[ec2-user@ip-10-170-94-162 ~]$ getent passwd foo2
foo2:x:500:502::/home/foo:/bin/bash
-o
позволяет дублировать uid, -d
устанавливает домашний каталог, -u
устанавливает uid, -g
устанавливает гид, -s
устанавливает оболочку, -M
говорит, что не создавайте домашний каталог. Хотя я не уверен, как бы вы это марионтили.
то, что вы можете попробовать на стороне клиента, - это отредактировать файл пользователей ~ / .ssh / config и добавить несколько строк на основе этого
Host yourservername.com
user gitolite
таким образом просто клон git как
git clone yourservername.com:path/to/git/repo.git
в будущем для изменения имени пользователя потребуется только изменение файла ~ / .ssh / config локально на компьютере пользователя
Чтобы сделать №1, вы можете попробовать создать раздел в вашем файле ~ / .ssh / config.
Что-то вроде этого:
host servername
user gitolite
hostname server.example.com
port 22
Тогда вы можете сделать что-то вроде следующего, и вам не придется связываться с именами пользователей.
git push servername
Все это при условии, что вы используете OpenSSH в качестве своего ssh-клиента.
Попробуйте №2.
Создайте пользователя «git» с тем же UID, домашним каталогом и т. Д., Что и у «gitolite». Не мое любимое занятие, но оно должно работать.
Я делал это раньше на компьютерах с Ubuntu, и это работает, но наличие у нескольких учетных записей одного UID всегда казалось мне немного неприятным.
Недавно я установил GitoLite и попробовал метод пакета. Честно говоря, это было грязно.
Моя вторая попытка заключалась в том, чтобы создать обычного пользователя, а затем установить вручную, следуя инструкциям метода без полномочий root. Проще и проще. Я тоже хотел имя пользователя "Git" и использовал его.
Итак, мое предложение, удалите установку RPM и следуйте методу без полномочий root. :-)
(https://github.com/sitaramc/gitolite/blob/pu/doc/1-INSTALL.mkd для инструкций, но если вы клонировали репо, оно у вас уже есть)
Если вы используете аутентификацию на основе ключей в sshd, вы можете добавить принудительную команду в файл authorized_keys для sudo в качестве целевого пользователя.
Добавьте NOPASSWD в sudoers, чтобы остановить двойные запросы.
Требуется sudo и управляемый марионеткой пользователь git.
Когда вы используете "корневой" метод установки, вы должны иметь возможность запускать gl-system-install от имени пользователя root, а затем запускать gl-setup как любой user (а по сути любое количество пользователей) так что все они могут гитолить "пользователями хостинга".
Я не могу представить, что RPM уберет или каким-то образом отключит эту врожденную функцию.
Итак, я отвечу: не беспокойтесь о UID и т. Д. Просто установите RPM, добавьте пользователя git, su - git, затем gl-setup yourname.pub. Должен это сделать.