Правильные права доступа к файлам для пользователей 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.
В случае gitolite push- коммитов в git (gitolite) репозиторий портит права доступа к файлу (больше нет доступа к trac)