だからこれを検索してみました。たくさん矛盾する答えが見つかりました。
誰もが利益のために/var/www/htmlで所有権/権限を設定する方法について完全に合理的で参照的な答えを提示することができれば幸いです。
たとえば、sftpを使用してディレクトリにアクセスしようとしていますが、デフォルトではユーザーがディレクトリにファイルを書き込めないとします。セキュリティの観点から正しい解決策は何ですか?
(私たちはランプ環境)
答え1
セキュリティの観点からは、このディレクトリとWebサーバーがアクセスする必要があるすべてのディレクトリは、次のように設定する必要があるようです。いいえファイル/ディレクトリの所有者はこのようにして力がないすべてのディレクトリ/ファイルに書き込みます。
これにより、サーバーの脆弱性が原因でDOSと漏洩のみが発生し、Webサーバーはファイルを書き込むことができなくなります。
もちろん、実際の生活では、状況がより複雑になる可能性があります。
- Webサーバー内の一部のCGI /アプリケーションは、どこかに書き込みアクセスが必要な場合があります(たとえば、データベースがセッションデータの保存を完了するために使用されていない場合など)。
- Webサーバー自体は通常、ログファイルなどに書き込むためにどこかに書き込みアクセス権が必要です。
- 一部の設定では、Web サーバー内の各アプリケーションを Web サーバー自体以外の UID で実行することができ、これにより肯定的なセキュリティ効果が得られます。所有権と権利のバランスは複雑になる可能性があります。これがおそらく多くの人がインターネットで話していることを何度も見ることができる理由です。
rwx
ただどこにでも置いてください。もちろん、すべての人にすべての権利を与えると「動作」しますが、セキュリティの結果が生じます。
したがって、同様のユーザーがサーバーに接続し、SFTPを介して新しいファイルをアップロードしてWebサーバーがそのファイルを提供できる場合は、次のようにします。
- 各ユーザーが自分の特定のディレクトリを所有し、すべての権限を持つことを許可する
- Webサーバーマスターグループをユーザー固有のディレクトリ固有のグループにし、
rx
権限を付与します。 - 他のユーザーには権限がありません。
これにより、各ユーザーは自分のファイルのみを表示でき、他のファイルは表示できなくなります(SFTPにはセキュリティを強化するためのchrootingオプションもありますが、これによって問題が発生します)、Webサーバーは読み取り用にすべてのファイルにアクセスできます。
各ディレクトリには、Webサーバーグループが所有するすべてのファイルを持つことも、ファイルが最上位ディレクトリによって保護されており、rx
所有者またはWebサーバーを除く他のユーザーは権限を持っていないため、すべての人のためにすべてのファイルを配置することもできます。