Centos - Web アプリケーションのデプロイ - SFTP/WinSCP で非 Apache ユーザー アカウントを使用する最適な方法は何ですか

Centos - Web アプリケーションのデプロイ - SFTP/WinSCP で非 Apache ユーザー アカウントを使用する最適な方法は何ですか

簡単な質問ですが、これを安全に行う方法を理解するのに苦労しています。

Linux (Centos7) 上で実行される PHP ベースの Web アプリケーションがあり、Linux サーバー上で Sudo 権限を持つ「ユーザー」アクセス権を持っています。

ウェブサーバー(Apache)は「apache」グループの「apache」ユーザーとして実行されます。

問題は、WinSCPを使用してアプリケーションを展開しようとすると、権限が拒否されたというエラーが発生することです。この問題を解決する唯一の方法は、

usermod -g apache myusername
chmod 775 /var/www/html

ウェブフォルダ全体に775を与えたくないこれは大きなセキュリティ問題だと思いますが、このタイプのタスクをアーカイブする最も安全な方法は何ですか?

自分のユーザー アカウントで Winscp を使用してアプリをデプロイするにはどうすればよいでしょうか。また、安全だと考えられている業界の一般的な慣行に関するその他の提案はありますか。

答え1

この問題を解決するには、複数の推奨方法があります。

  1. /var/www/htmlWinSCP/SFTP 経由でログインするユーザーに 書き込みアクセス権を追加します。これは複数の方法で実行できます。
    • グループを実行ユーザーに変更する(書き込みアクセスを許可する)
      sudo chgrp <user> /var/www/html
      sudo chmod g+w -R /var/www/html
      
      注: ユーザーに対して常に Unix グループが作成されるため、これが機能します。
    • Apacheとユーザーの両方を含む新しいUNIXグループを作成する(書き込みアクセスを許可する)
      sudo groupadd <groupname>
      sudo chgrp <groupname> /var/www/html
      sudo chmod g+w -R /var/www/html
      
  2. WinSCP/SFTP 経由でユーザーがログインすると、Apache サービスが実行されます。リンク
  3. Apache ドキュメント ルートを移動します/var/www/html(/var/www/html からデプロイメント ユーザーが所有するディレクトリへのシンボリック リンクを作成するか、Apache 構成を更新します)

関連情報