web-dev-qa-db-ja.com

ファイルの所有権を設定するためにsshgit Pushを防ぐ方法は?

UbuntuサーバーにリモートのベアGitリポジトリがあり、ファイルはユーザーmy_projectとグループmy_projectによって所有されており、それに応じて権限が設定されています。すべてのコミッショナーは、グループmy_projectに所属しています。

誰かがコミットしてから、ユーザーmy_userのUbuntuラップトップからSSH経由でサーバーにプッシュすると、リモートリポジトリ内のいくつかのファイルが作成(更新?)されるため、ユーザーとグループmy_userに属します。

もちろん、他の誰かがコミットしたい場合、彼は書き込み権限を持っていないため、今ではコミットできません。権限を777に設定することはできますが、これは最善のオプションではありません。

制限された書き込み権限を維持しながらこの問題を解決できる方法はありますか?

5
e-satis

SUIDビットとSGIDビットは役に立ちますか?同様のメカニズムを使用して、bzrグループのメンバーがファイルをBazaar中央リポジトリにコミットし、アクセス可能なアクセス許可を保持できるようにします。

drwsrwsr-x  3 bzr          bzr          4.0K 2010-04-15 17:58 bzr

Sudo chmod ug+s /home/bzrで設定

/ etc/groupにはbzr:x:1012:bzr,tom,<and a whole bunch of other usernames>が含まれています

これは私たちにとってはかなりうまく機能しているようで、bzrグループのユーザーが中央リポジトリにファイルをコミットできるようになっています。

明らかなセキュリティ上の理由から、モード777の設定はおそらく理想的ではありません。

私が要点を逃したなら、おっと。

4
Tom O'Connor

core.sharedRepositorygit config --help構成変数を確認してください。グループに設定するとうまくいくかもしれません。

別のオプションは、リポジトリを管理するために gitosis のようなものを使用することかもしれません。

2
ptman