という名前のウェブサイトを立ち上げて運営してい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