私のサーバーでは、gitolite 経由でいくつかの git リポジトリをホストしており、リポジトリごとに trac があります。
サーバー ( ) からプッシュ/プルするための git というユーザーがいますgit clone git@server:repo
。trac は mod_wsgi を備えた Apache vhost です。これは www-data ユーザーで実行されます。
それで、私が困惑しているのは (おそらく、ファイルのアクセス許可についてほとんど何も知らないからでしょうが)、git リポジトリ ( /home/git/repositories/
...) に最適なアクセス許可設定 (chown、chmod) は何なのかということです。
www-data (または trac) には少なくとも読み取り権限が必要です (そう思います)。また、git (または gitolite) には、変更セットをプッシュするための読み取り/書き込み権限が必要です。
少し試してみましたが (つまり、www-data や git を www-data/git グループに追加しました)、うまくいきませんでした。少なくとも 2 つのうち 1 つは機能しません (git または trac)。
あらゆるご提案をいただければ幸いです。
答え1
最も安全な方法はgit-readersというグループを作ることだと私は思います
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-data はフォルダーへの読み取りアクセスが許可されますが、git ユーザーに書き込みアクセスのみが与えられます。他のユーザーは何もできません。
追加のライターを追加する場合は、別のグループ git-writers を追加し、それにユーザーと git を追加し、さらに git-readers グループを追加して、次の構造を使用します。
/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 である場合にのみ適切に機能します。