Правильные права доступа к файлам для пользователей trac и git для доступа к репозиториям сервера gitolite

На моем сервере я размещаю некоторые git-репозитории через gitolite, и у меня есть trac для каждого репозитория.

У меня есть пользователь с именем git для push / pull с сервера (git clone git@server:repo). и trac - это Apache vhost с mod_wsgi. это работает с пользователем www-data.

Так что меня озадачивает (может быть, потому, что я вообще ничего не понимаю о правах доступа к файлам), что является лучшей настройкой разрешений (chown, chmod) для репозиториев git (/home/git/repositories/...).

www-data (или trac) должны как минимум иметь права на чтение (я думаю). и git (или gitolite), очевидно, нужны права на чтение / запись для отправки изменений.

Я немного попробовал (т.е. добавил www-data и / или git в группу www-data / git), но не понял правильно. по крайней мере один из двух не работает (git или trac).

любые предложения высоко ценятся.

2 ответа

Я бы сказал, что самый безопасный способ сделать это - создать группу под названием git-reader

добавьте в него git и www-data, затем создайте следующую структуру папок:

/home/git - git:git-readers u=rwx,g=rx,o=
/home/git/repositories - git:git u=rwx,g=rwx,o=rx

Это позволит вводить www-данные в папку для чтения, но дает только пользователю git доступ для записи. Любой другой пользователь не может ничего сделать.

Если вы хотите добавить дополнительных писателей, я бы добавил еще одну группу git-writers и добавил бы к ней пользователей и git, а также группу git-reader, а затем использовал бы следующую структуру:

/home/git - git:git-readers u=rwx,g=rx,o=
/home/git/repositories - git:git-writers u=rwx,g=rwxs,o=rx

Обратите внимание на 's' в группе разрешений. Это заставляет пользователей-писателей использовать группу git-writers в качестве группы по умолчанию. Это будет работать правильно только если все писатели umask 0002.

Другие вопросы по тегам