2011-08-16 33 views
15

私はGitとGitoliteをセットアップしましたが、設定ファイルの1つに "umask"設定があることを思い出しました。 Gitを使って同期するすべてのファイルのアクセス権を設定しますか?それはまさに私が必要とするものです。どこで見つけることができますか?Git/Gitoliteでumaskを設定する

答えて

20

umask settings in Gitoliteは、新しく作成されたreposのumaskを変更するためのものです(reposによってバージョン管理されているファイルではありません)。
gitolite.rc docを参照してください:

$REPO_UMASK、オクタル、デフォルトの0077

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

これに対処する正しい方法は、この変数に0027のような値を与えることです(構文に注意してください:先行する0は必須です)。次に、ユーザーにWebサーバー(apache、www-data、何でも)を実行させます。 'git'グループ。

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

この設定は、一回の使用に似ています:group(またはtrue)は、リポジトリは複数のユーザー間で共有可能な作られ

core.sharedRepository 

(すべてのファイルとオブジェクトがグループ書き込み可能であることを確認してください)。
all(またはworldまたはeverybody)の場合、リポジトリはすべてのユーザーが読むことができ、さらにgroup-shareableになります。
umask(またはfalse)の場合、gitはumaskによって報告されたアクセス許可を使用します。

How do I share a Git repository with multiple users on a machine?」も参照してください。

権限に関連するプラットフォーム間で競合が発生した場合は、「instruct git to ignore file permissions changes」(git config core.fileMode false)というオプションもあります。

更新:この回答は、gitolite 2を対象としています。gitolite 3では、設定が$REPO_UMASKから$UMASKに変更されました。

関連する問題