2012-03-28 18 views
2

私は私たちが取り組んでいるプロジェクトをクローン/プッシュする開発者を持つことを目的としたubuntuサーバにgitoliteリポジトリをセットアップしました。私はレポに持っているポスト受信フックに問題があります。私は、特定のレポをサーバ上の特定のディレクトリにチェックアウトした後の受信ポストを持っています。私の場合、/ home/user/www/projects /です。問題は、管理者がrepo(git push origin)をプッシュすると、フックがプロジェクトを指定されたディレクトリに正常にチェックアウトし、チェックアウトされているディレクトリ(プロジェクト)のアクセス権を変更することです。ただし、通常のユーザーがrepoにプッシュすると、フックは権限を変更せずにプロジェクトをそのままチェックアウトします。私はすでに0002であるサーバ上のumaskをチェックしましたが、ここでは問題ではありません。私はアンインストールして、gitoliteを再インストールしましたが、それでも同じ問題があります。gitoliteとファイルのアクセス許可

答えて

4

"Git CHMOD post-receive hook"で説明したように、Gitレポ自体に関連する許可がここで問題になる可能性があります。

Gitoliteでは、この許可は.gitolite.rc as $REPO_UMASK$UMASK(これはGitoliteV3 or'g3'で '$UMASK')に設定されています。
確認することがあなたのチェックアウトの問題に影響を与えない場合:

用途をgitoliteデフォルトUMASKは、すべてのリポジトリを行い、その内容はrwx------権限を持っています。 gitwebを実行したい人は、これができないことを認識しています。

これに対処する正しい方法は、この変数に0027のような値を与えることです(構文は次のとおりです:0が必要です)。そして、ユーザーにWebサーバー(Apache、www-dataなど)を実行させます。 'git'グループのメンバです。

すでにgitoliteをインストールしている場合は、既存のファイルを手作業で修正する必要があります(umaskまたは0027、つまりchmod -R g+rX)。
umaskは、新しく作成されたファイルのアクセス許可にのみ影響し、既存のアクセス許可には影響しないためです。

+0

ありがとうございます。私は.gitolite.rcの変数$ REPO_UMASKを0027に変更しました。私はそれがdrwx​​-rxへのアクセス権を変更したことに気付きました---私の推測ではumaskの値は間違っています。私は適切な権限を調べます。ご協力いただきありがとうございます! – jmdesigner81

+0

@ jmdesigner81 '0027'がうまく動作しない場合は、元のumask値' 0002'を '$ REPO_MASK'値として試してください。 – VonC

+1

ありがとう!それは私がそれを感謝して働いた。私は、デザイナーとしてのギトライトの設定についてブログで記事を書くつもりです。私はデザイナーです。再度、感謝します! :) – jmdesigner81

関連する問題