0

という名前のウェブサイトを立ち上げて運営していsasseます。pullシンプルな SSH と Git (Github) デプロイ戦略を使用します。コードは、Github アカウントからデプロイ サーバーに単純に:ed (および更新) されます。

現在、Web サイトのファイルはサーバー上のユーザーによって所有されてsasseいますが、グループの書き込み権限があります。ファイルは にあります/home/sasse/sasse

drwxrwxr-x 10 sasse sasse  4096 Nov 16 07:58 .
drwxr-xr-x  5 sasse sasse  4096 Nov 19 15:13 ..
-rw-rw-r--  1 sasse sasse 45948 Nov 10 05:42 CHANGELOG.txt
-rw-rw-r--  1 sasse sasse   925 Nov 10 05:42 COPYRIGHT.txt
...

つまり、サーバーにgit pullログインしている場合は問題sasseなく動作しますが、個人アカウント (sasseグループに追加された sudo アカウント) でログインすると、変更されたファイルはすべて自分のものになります。私のプライマリ グループはありませんsasse。つまり、COPYRIGHT.txt に影響する変更をプルした後:

drwxrwxr-x 10 sasse sasse    4096 Nov 16 07:58 .
drwxr-xr-x  5 sasse sasse    4096 Nov 19 15:13 ..
-rw-rw-r--  1 sasse sasse   45948 Nov 10 05:42 CHANGELOG.txt
-rw-rw-r--  1 victor victor   925 Nov 10 05:42 COPYRIGHT.txt

これは、元の所有権のステータスを保持したい場合は、覚えてchown -R sasse:sasse .おく必要があることを意味します。これは、他の誰かが次回プルできるようになる場合に必要です。そして、彼らはおそらくそうです!

複数の人がサーバーにコードをデプロイできる必要があるため、sasseアカウントは個人的なものではありません。人々がログインするのではなく、関連するグループのメンバーシップ/権限を持つ個人アカウントを使用することを望んでいました.

質問:

  • 複数の人が同じサーバーにコードをデプロイするためにアクセスする必要がある状況を処理する最善の方法は何ですか?
    • 代わりに、すべてのユーザーが展開のためにアカウントを使用できるようにする必要がありsasseますか?*
    • ユーザーがリポジトリへのグループ アクセス (または sudo アクセス) を持つ戦略を維持する必要がありますが、どうにかしてパーミッションが台無しになる問題を回避する必要がありますか? もしそうなら、どのように?「特定のユーザーとして」 git pull を実行できますか?

* おそらく、公開鍵を追加し、そのファイル自体を編集さauthorized_keysせないことによってsasse

4

1 に答える 1

1

gitoliteと適切な after-receive (または同様の) フックを使用しますそのうちの 1 つは、プッシュされた ref へのチェックアウトである必要があります。

于 2012-11-20T00:47:06.623 に答える