web-dev-qa-db-ja.com

GitベアリポジトリのLinuxユーザーグループ構成

私はUbuntuボックスを使用して、開発者が作業できるように裸のGitリポジトリをホストしています。

現時点では、ファイルストアとローカルテストサーバーを兼ねているため、ボックスで各開発者のユーザーアカウントを作成しています。

誰かがベアリポジトリにプッシュすると、他の開発者は、結果としてオブジェクトフォルダで変更されたファイルを操作できなくなります。新しいファイルは、プッシュする開発者のユーザーで作成されます。

すべての開発者を開発グループに配置しましたが、umaskではグループの編集が許可されていません。

Gitリポジトリを設定する必要がなかったので、権限を操作した経験がありません。各開発者がテストサーバーに独自のユーザーアカウントを持っていることを望んでおり、そのアカウントを使用してサーバー上でアクションを実行することを望んでいます。私は彼らにSudoの権利を与えてもかまいません。

各開発者のumaskを設定する方法は進んでいますか?

3
Andy

" マシン上の複数のユーザーとGitリポジトリを共有するにはどうすればよいですか? "は問題に対処します(ユーザーにumaskを設定する必要があります)が、gitインストールに追加することをお勧めしますgitoliteのような認証レイヤー( そのドキュメント を参照)。

  • 誰にも与えるSudoの権利はありません。
  • すべてのgitリポジトリ操作は1人の 'git'ユーザーによって実行されます。
  • 新しく作成された(およびGititeで管理された)Gitリポジトリのumaskを正確に設定できます: " Git/Gitoliteでumaskを設定 "
3
VonC

共通のグループを作成します。 gitusersそしてすべての開発者をこのグループに追加します。

chown -R root:gitusers /path/to/repository.git
chmod 2775 /path/to/repository.git

権限を再帰的に変更する必要がある場合があります(例:

find /path/to/repository.git -type d -exec chmod 2775 {} \;
find /path/to/repository.git -type f -exec chmod 0664 {} \;

これで、すべての開発者がリポジトリへの書き込みアクセス権を持つ必要があります。

2
pkhamre