AWSのRedHat 7イメージにApacheをインストールして設定しました。ただし、filezillaを使用してSSH経由でファイルをアップロードすると、権限/所有権の問題が発生します。
SSHユーザーを設定し、そのホームディレクトリをapache /var/www/html/に追加し、ここにMagentoをインストールしました。
元の設定:
- ユーザー:/var/www/html/groupはApacheです。
- user:root/group:apache for /var/lib/php/session dir (わかりませんが、magentoがセッションファイルをそこに保存し、所有者が変更されると書き込みエラーが発生するようです)
- httpd.confユーザー:グループはApacheです。
- これらの設定では、ftpまたはsftpを使用してファイルをアップロードできません。 - 権限エラーです。
私が次に変更した場合:
- ユーザー:グループ/var/www/html/はssh_userです。
- ユーザー: ssh_user / グループ: ssh_user for /var/lib/php/session dir
- httpd.confユーザー:グループはssh_userです。
- これでアップロードは可能ですが、キャッシュファイルはルートとして生成されます。
私が望むもの:
- ユーザー:グループ/var/www/html/はssh_userです。
- /var/lib/php/session ディレクトリのデフォルト設定
- httpd.confユーザー:グループはApacheです。
一般ユーザーがftpまたはsftpを介してファイルをアップロードできることを願っています。
この目標をどのように達成しますか?私はApacheを初めて設定するので、正しく実行する方法を学びようとしています。
ベストアンサー1
すべてのディレクトリとファイルに書き込むことができるWebサーバーUIDを必要とするすべてのWebアプリケーションは、設計上破損し安全ではありません。このような人生を受け入れる意志があれば...
各アカウントを含む新しいグループを提供するしなければならない文書作成可能 - 説明のためにWebアーティストと呼びます。
このグループにこれらのユーザーを追加します。デフォルトグループである必要はありません(usermod -G webwriters ssh_user; usermod -G webwriters apache; ....)。
範囲内の各最上位ディレクトリで次のコマンドを実行します。
chown -R apache:webwriters $DIR
find $DIR -type f -exec chmod g+rw {} \;
find $DIR -type d -exec chmod g+rws {} \;
これで、このグループはすべてのファイルとディレクトリに書き込むことができます。そして、新しいファイルを作成すると、そのファイルはWebライターグループの所有になります。
/etc/ssh/sshd_configを編集してsftpserverに追加し、
-u 002
sshdを再起動します。これにより、sftpを介してコピーされた新しいファイルをこのグループに書き込むことができます。 FTPを使用しないでください。 scpを使用するには、シェルのrcファイルにumaskを設定する必要があります。/etc/systemd/system/httpd.service.dに新しいディレクトリを作成し(まだ存在しない場合)、ファイルを追加します。必要に応じて名前を付けることができます。
[Service]
UMask=0002
その後、Apacheを再起動します。これにより、Webサーバーによって生成されたファイルにも予想される所有権/権限が付与されます。
最後に、最も重要なのは、HIDS(L5、LIDS、Tripwire)をインストールして管理方法を学ぶことです。 Fail2banをインストールし、ログイン試行率に制限を追加します。