Настройка сервера git

В противном случае вы могли бы использовать gksu вместо sudo для запуска программ графического интерфейса, но, как было сказано в примечаниях выше, это устарело, и вместо этого следует использовать pkexec.

По умолчанию это не поддерживает программы графического интерфейса. Поэтому вам нужно настроить их для запуска. После настройки вы сможете запускать их из командной строки, используя:

pkexec bleachbit

Для настройки вам нужно отредактировать \ создать файл /usr/share/polkit-1/actions/org.freedesktop.policykit.pkexec.policy. Например, используя nano ...

pkexec nano /usr/share/polkit-1/actions/org.freedesktop.policykit.pkexec.policy

Затем для указанных программ вам необходимо добавить в файл следующее содержимое ...






Run gedbi
Authentication is required to run gedbi

  no
  no
  auth_admin_keep

/usr/sbin/gedbi
TRUE



Run bleachbit
Authentication is required to run bleachbit

  no
  no
  auth_admin_keep

/usr/sbin/bleachbit
TRUE



Вы можете добавить дополнительные программы таким образом, или, если хотите, есть скрипт bash для автоматического добавления дополнительных программ в файл конфигурации .

57
задан 29.10.2019, 03:14

8 ответов

Это очень легко сделать с гитолитом . Менее чем через час вы получите легко настраиваемый и безопасный многопользовательский git-сервер.

У меня есть статья на моем сайте

.
0
ответ дан 29.10.2019, 03:15

Лучшим решением для меня была настройка WebDAV.

  • sudo a2enmod sudo dav_fs

  • sudo a2enmod dav

  • добавьте новый файл в /etc/apache2/sites-available и назовите его, например, git.yourserver.com. Отредактируйте его и добавьте следующие строки:

<VirtualHost *:80>

DocumentRoot /var/www/git.yourserver.com/repos
ServerName git.yourserver.net
Options Indexes FollowSymLinks MultiViews

<Location />
    DAV On
    AuthType Basic
    AuthName "git repos"
    AuthUserFile /var/www/git.yourserver.net/password.dav
    Require valid-user
</Location>

</VirtualHost>

  • создать каталог /var/www/git.yourserver.com и каталог repos inside id
  • sudo chown www-data /var/www/git.yourserver.com/repos
  • sudo htpasswd -c /var/www/git.yourserver.com/password.dav user_login и введите пароль для пользователя с именем user_login
  • sudo chown root:www-data /var/www/git.yourserver.com/password.dav
  • [1131]
  • sudo chmod 640 /var/www/git.yourserver.com/password.dav

Теперь, sudo a2ensite git.yourserver.com и sudo service apache2 restart.

  • Введите /var/www/git.yourserver.com/repos и создайте каталог, например, myrepo.git
  • cd myrepo.git
  • git --bare init
  • [1135]
  • git update-server-info

Теперь выйдите из системы с вашего удаленного сервера и перейдите в локальный каталог, в котором вы хотите редактировать свои файлы.

git clone http://user_login:user_password@git.yourserver.com/myrepo.git

и вы закончили. Если вы хотите отправить свои зафиксированные изменения на сервер:

git push origin master

Вы можете создать столько пользователей, сколько захотите, используя sudo htpasswd. Только не забудьте использовать переключатель -c при добавлении большего количества пользователей, потому что старый файл будет удален.

0
ответ дан 29.10.2019, 03:16

Для всех моих настроек Git-сервера я использую Gitolite , который обеспечивает гранулярность безопасности доступа «на ветвь». Настройка довольно проста, если вы делаете это на удаленном сервере, это так же просто, как запуск интерактивного скрипта. В дополнение к этому «простому в настройке» характеру, он также имеет пакет в Natty и Maverick

sudo apt-get install gitolite

. Это не обеспечит веб-интерфейс, такой как Github или Gitweb, - но вы можете легко настроить и установите их на что-то вроде Gitolite.

0
ответ дан 29.10.2019, 03:16

Вы можете использовать руководство для установки сервера Git, как предложено aking1012 вы или вы можете просто установить SSH-сервер на свой экземпляр EC2 (возможно, было бы разумно защитить его и изменить порт по умолчанию).

Git может работать без сервера: вы инициируете свой репозиторий, а затем получаете доступ к нему с удаленного компьютера через SSH. Таким образом, такие инструкции на сервере Ubuntu должны сделать это:

GIT_DIR=project.git git init  
cd project.git  
git --bare update-server-info  
cp hooks/post-update.sample hooks/post-update

Наконец, установите SSH на свой сервер:

sudo apt-get install ssh-server

Теперь вы должны настроить SSH для его защиты.

Пришло время разместить ваш проект в сети (данные, которые у вас уже есть на вашем компьютере разработчика):

git push ssh://<username>@<remote-git-hostname>/path/to/project.git master

И теперь вы можете начать клонирование. Вы переходите на свою машину разработки:

git clone ssh://<username>@<remote-git-hostname>/path/to/dir.git

Проверьте этот отличный ресурс на Git .

А чтобы сгенерировать ваши ssh-ключи для более безопасной аутентификации, вы можете прочитать эту статью о SSH-аутентификации .

0
ответ дан 29.10.2019, 03:17
  • 1
    Что ж, это может сработать, но для входа через SSH на компьютеры Amazon EC2 требуется открытая / закрытая пара ключей (ssh -i key.pem ubuntu @ address). Кроме того, я должен запомнить путь (ubuntu @ address: / var / www / dir1 / dir2), а не просто git clone git.mydomain.com/repository – Pang 29.10.2019, 03:17
  • 2
    @jorge кажется, что ssh-server является псевдонимом openssh-server, по крайней мере, в Ubuntu 10.04. – Community 29.10.2019, 03:17
  • 3
    Разве это не должно быть openssh-server? – Sandy 29.10.2019, 03:18
  • 4
    @ Павел хороший момент. Вот почему некоторые люди помещают репозиторий git в корень файловой системы. Но да, вам нужны ssh ключи или учетные записи. Или вы можете использовать HTTP, но тогда у вас нет действительно хорошего контроля доступа AFAIK. – pixel 29.10.2019, 03:18
  • 5
    @ PawełKarpiński - Вы можете настроить файл конфигурации SSH на стороне клиента в ~/.ssh/config для обработки имени пользователя / адреса хоста, ввода ключа, портов и тому подобного. – BrainSlugs83 29.10.2019, 03:19

http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way можно немного изменить в соответствии с вашими целями . Аналогичный учебник http://blog.agdunn.net/?p=277 .

0
ответ дан 29.10.2019, 03:17
  • 1
    Я не видел ничего более простого ... большинство учебников по gitorious и gitosis не проходят создание примера проекта и тестирования (что, я думаю, должно быть в каждом учебнике). Если я увижу другую прямую фразу, я буду помнить эту тему – Rebecca 29.10.2019, 03:17
  • 2
    эти уроки потрясающие, но они довольно сложные. Там нет "короче" учебники? :) – Mike Atkisson 29.10.2019, 03:18
  • 3
    примечание: в настоящее время я собираю руководство по rvm, ree / ruby, rails, git для клиента разработки и сервера разработки. он просто рисует множество онлайн-уроков в одном месте и немного их модифицирует, но в данный момент он все еще находится в стадии разработки. – CularBytes 29.10.2019, 03:18
  • 4
    @ PawełKarpiński - Что в них такого сложного? Я использовал настройку Gitosis прежде, и это на самом деле очень просто. – Tim 29.10.2019, 03:19

Мне нравится Гитолит . В книге Pro Git есть раздел , но я рекомендую прочитать всю книгу.

Что касается требования для нескольких пользователей:

Gitolite позволяет указывать разрешения не только для репозитория (как это делает Gitosis), но также для имен веток или тегов в каждом репозитории. То есть вы можете указать, что определенные люди (или группы людей) могут выдвигать только определенные «ссылки» (ветви или теги), но не другие.

0
ответ дан 29.10.2019, 03:18

Обязательно следуйте официальной документации: https://help.ubuntu.com/community/Git (раздел Настройка Git и управления проектами )

0
ответ дан 29.10.2019, 03:18

Мне также нравится подход gitolite для управления пользователями и безопасностью. У меня есть сервер AMI Git + gitolite для EC2, который в настоящее время тестируется. Не стесняйтесь попробовать; документация доступна здесь:

Alestic Git Server

Используя этот подход, вы можете иметь центральный сервер Git с частными репозиториями, работающими в считанные минуты. Если вы не знакомы с ними, существует кривая изучения гитолита и EC2.

0
ответ дан 29.10.2019, 03:19

Теги

Похожие вопросы