Назад | Перейти на главную страницу

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

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

У меня есть пользователь с именем git, который отправляет / извлекает с сервера (git clone git@server:repo). а trac - это vhost apache с mod_wsgi. это работает с пользователем www-data.

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

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

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

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

Я бы сказал, что наиболее безопасный способ сделать это - создать группу под названием 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.