私は Git と Gitolite をセットアップしましたが、ある時点で、構成ファイルの 1 つで「umask」設定を見たことを思い出しました。これにより、Git を使用して同期するすべてのファイルのアクセス許可が設定されますか? それがまさに私が必要としているものです。どこで見つけることができますか?
1 に答える
Gitoliteのumask 設定は、新しく作成されたリポジトリの umask を変更するためにあります (それらのリポジトリによってバージョンで管理されているファイルについてではありません)。gitolite.rc doc
を参照してください。
$REPO_UMASK
、8 進数、デフォルト 0077
UMASK
gitolite が使用するデフォルトでは、すべてのリポジトリとそのコンテンツにrwx------
権限が付与されます。gitweb を実行したい人は、これではうまくいかないことを認識しています。これに対処する正しい方法は、この変数に次のような値を与え
0027
(構文に注意してください: 先頭の 0 が必要です)、Web サーバー (apache などwww-data
) を実行しているユーザーを「git」グループのメンバーにすることです。すでに gitolite をインストールしている場合は、既存のファイルを手動で修正する必要があります (umask または
0027
の場合は になりますchmod -R g+rX
)。これはumask
、既存のファイルではなく、新しく作成されたファイルのアクセス許可にのみ影響するためです。
この設定は、git リポジトリを (gitolite なしで) 直接作成するときに使用するものと似ています。
core.sharedRepository
group
(または) の場合true
、リポジトリはグループ内の複数のユーザー間で共有可能になります (すべてのファイルとオブジェクトがグループ書き込み可能であることを確認します)。(またはまたは) の
場合、リポジトリは であることに加えて、すべてのユーザーが読み取り可能になります。(または) の 場合、git は によって報告されたパーミッションを使用します。all
world
everybody
group-shareable
umask
false
umask
詳細については、「マシン上の複数のユーザーと Git リポジトリを共有するにはどうすればよいですか?」も参照してください。
権限に関してプラットフォーム間で競合がある場合は、「ファイル権限の変更を無視するように git に指示する」オプションもあります( git config core.fileMode false
)。
更新: この回答は gitolite 2 を対象としています。gitolite 3 では、設定が から に変更され$REPO_UMASK
ました$UMASK
。