2

ローカル リポジトリとリモート --bare リポジトリ セットがあります。

私のホスティングパッケージにはそれぞれ独自のユーザーとグループ(sshアクセスなし)があるため、権限の問題があります。

リモートリポジトリを ssh://root@... として設定し、post-receiveフックを作成して適用することで、これを回避しましたchown correctuser:correctgroup -R public_html/

これは、「ルート」が関係しているため、理想的ではないことがわかりますが、そうであってはなりません。

' git init --bare --shared' は役に立ちますか?

ルートとしてリモートでプッシュできるようにしたいのですが、すべてのグループ (パッケージ) に「git」を追加しても役に立ちませんでした。

お知らせ下さい。

4

2 に答える 2

2

ssh アクセス用に保持することもできrootますchownが、ssh セッションを git コマンドのみに制限し、gitoliteのような認証レイヤーを使用します。

--shared複数のグループがある場合、オプション ( man ) は正確には適していません。git init

--shared[=(false|true|umask|group|all|world|everybody|0xxx)]

git リポジトリが複数のユーザー間で共有されるように指定します。
これにより、同じグループに属するユーザーがそのリポジトリにプッシュできるようになります
指定すると、設定変数 " core.sharedRepository" が設定され、その下のファイルとディレクトリ$GIT_DIRが要求されたパーミッションで作成されます。
指定されていない場合、git は umask(2) によって報告されたパーミッションを使用します。

于 2012-10-21T10:08:40.130 に答える