web-dev-qa-db-ja.com

sshオートメーションデプロイユーザーwww-dataまたは他のユーザー

プロジェクトは/var/wwwにあり、ユーザーwww-dataが所有しています。

デプロイ用の自動化を作成したいので、次のようにします。

  • ユーザーwww-dataとしてSSH経由で接続します
  • /var/www/somefolderに移動します
  • git pullおよび関連するすべての処理を実行します。

Sshを介してwww-dataでログインし、これらのアクションを実行するのは安全ですか?

または、別のユーザーでログインしてから、そのユーザーにwww-dataグループを与える必要がありますか?または、別のユーザーでログインしてからsu www-dataして、作業を行いますか?

2
Tzook Bar Noy

これに関する問題は、www-dataとしてログインすることは安全ではありませんが、そのアカウントでWebサイト全体を書き込み可能にすることは安全ではありません。ディレクトリへの書き込み権限を持つWebサイトファイルを管理するには、別のアカウントを使用する必要があります。そのユーザーはファイルを所有する必要があります(通常はwww-dataグループにも含まれますが、これは絶対に必要というわけではありません)。次に、グループのアクセス許可を使用してWebサイトで実行できることを指定し、ユーザーのアクセス許可を使用して管理アカウントで実行できることを指定することにより、必要なアクセス許可を設定できます。これらのファイルに対してothersにアクセス許可を与える必要はおそらくないでしょう。

この管理アカウントは、サイト内の特定のフォルダー(一時フォルダーなど)に対するWebサイトの書き込み権限を許可するために、必要に応じてこれらのファイルをSudo chmod(およびおそらくSudo chown)できる必要があります。このユーザーによる許可を望まない場合は、この目的のために、Webサイトマネージャーに使用を要求するフォルダーを提供する必要があります。

編集:ファイルの読み取り権限を削除して、ファイルを削除せずにWebサイトから削除することもできます。ただし、次回アップロードするときにわからないまま誤って元に戻す可能性があるため、これを行うのは少し安全ではありません。そのため、ファイルのアップロードを自動化し、これらの種類の変更を行って忘れられないようにするために、常に公開スクリプトを作成することをお勧めします。

2
krowe