Pull to refresh

GIT, AD и SSH. Или как управлять доступом в GIT через AD

Reading time2 min
Views4.5K
Привет, товарищ!

Как все знают, довольно большое распространение получает система контроля версий git.
И все бы хорошо, но многими любимый Gitosis не дружит с АД, а работа через http немного туповата.
Особенно, если настроен через WebDAV.

И тут я немного расскажу как подружить git с AD с последующим использованием через ssh.
К моему удивлению, в рунете (да и на просторах интернационального интернета) я подобных инструкций не видел.

Что у нас есть:
* Debian lenny
* git 1.7

Что нужно:
* openlikewise
* acl

И так. Быстрый HOWTO.


1. Устанавливаем ACL в дебиан.


Перед тем как что-то сделать, проверяем конфигурацию ядра:
# cat /boot/config-2.6.26-2-686 | grep _ACL
И смотрим на наличие:
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y

если этого нет, то ядро необходимо пересобрать.

Далее устанавливаем сам ACL:
# apt-get install acl
И затем редактируем /etc/fstab.

Было:
# cat /etc/fstab
# file system mount point type options dump pass
proc /proc proc defaults 0 0
/dev/hda1 / ext3 acl,errors=remount-ro 0 1
/dev/hda5 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0

Стало:
# cat /etc/fstab
# file system mount point type options dump pass
proc /proc proc defaults 0 0
/dev/hda1 / ext3 acl,errors=remount-ro 0 1
/dev/hda5 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0


Перемонтируем раздел
# mount -o remount,acl /dev/hda1
Или перезапускаем машину для дополнительной проверки что все завелось ;)
И последняя проверка:
# getfacl /path/to/git/test
getfacl: Removing leading '/' from absolute path names
# file: path/to/git/test
# owner: www-data
# group: www-data
user::rwx
group::rwx
other::r-x


2. Устанавливаем likewise-open


Тут все проще простого.
Заходим на сайт www.likewise.com/download, заполняем инфу, и нам высылают линки на скачивание скрипта для установки.
Выбираем что нам надо и качаем:
# wget www.likewise.com/bits/6.0/8360/LikewiseOpen-6.0.0.8360-linux-i386-deb.sh

ну и запускаем:
# sh LikewiseOpen-6.0.0.8360-linux-i386-deb.sh


После того как установили сей продукт, запускаем:
/opt/likewise/bin/domainjoin-cli join domainName ADjoinAccount

где domainName — название вашего домена, а ADjoinAccount — пользователь, который умеет добавлять записи в AD. по умолчанию Administrator

И все. Щастье.
Перезапускаем и пробуем зайти под AD аккаунтом:
ssh DOMAIN\\username@git-server

3. Добавляем права


Осталось самое главное :)

Перед тем как добавить права для групп на репозитории, необходимо группы сначала создать в AD, иначе будет ошибка.
Создали группы и теперь добавляем права на запись:
setfacl -R -m g:DOMAIN\\group_write:rwx /path/to/git/test;
setfacl -R -d -m g:DOMAIN\\group_write:rwx /path/to/git/test;

На чтение:
setfacl -R -m g:DOMAIN\\group_read:rX /path/to/git/test
setfacl -R -d -m g:DOMAIN\\group_read:rX /path/to/git/test


Вот в общем то и все.
Пользуйтесь и радуйтесь!

Дополнительно есть маленький скриптик, который создает GIT репозиторий и подключает необходимые группы: pastebin.com

Жду конструктивной критики и вопросов!

зы. Огромное спасибо damnerd за советы и знания о GIT.

ff
Tags:
Hubs:
+2
Comments0

Articles