Webサイトを実行しているのと同じユーザーを使用して展開する必要がありますか?

Webサイトを実行しているのと同じユーザーを使用して展開する必要がありますか?

最近、travisのビルドとデプロイを設定したNginxが提供するWebサイトがあります。

Nginxはユーザーとしてウェブサイトを運営していますwww-datadeployTravisがサーバーにSSHでアクセスしてWebサイトを展開できるようにユーザーを作成しました。配布されたファイルは、deployWebサイトを運営するユーザー()とは異なるユーザーを所有者として保存されますwww-data

この設定でサイトを操作すると、権限の問題が心配されます。 Webサイトを実行して展開するために同じユーザーwww-data/を使用する必要がありますか?deployこのアプローチでは、Webサイトを実行しているユーザーがSSHを介してリモートでログインするのに問題がありますか?

これについて私に教えてください。

答え1

実際、これらのファイルを所有してはいけません。これはwww-data、Nginxがそのファイルを変更できることを意味します。これは、ほとんどの場合(自己更新が必要なCMS以外)、望むものではありません。

したがって、すべてのファイルはdeploy

CMSで複数のフォルダに作成する必要がある場合は、非常に少ない(1?)フォルダが実際に属している必要がありますwww-data。展開で最初のインストールも実行すると、問題が発生する可能性があります。ユーザーに手動の手順を提供したりタスクを実行したりする特別なツールがありますが、これがワンタイムであれば手動で実行するのは簡単です(特にこのフォルダは1つしかないためです)。代わりに停止することもできます。これにより、すぐにわかりやすくなり、ファイルをアップロードしたり、同様の操作を実行したりする際の問題を回避できます。

もちろん、ファイルを所有しているわけではありませんが、www-data読んでくださいwww-data。したがって、他の人が読めるように設定する-rw-r--r--か()グループを設定することを検討してくださいwww-data-rw-r-----)。ほとんどの場合、私は人々がこのグループに入らないのを見ます。より安全なので、他の人がファイルにアクセスできるようにします。

deployもちろん、これはNginxがこのユーザーとグループにアクセスできないことを意味します。

関連情報