![Apache の html/ フォルダの所有者を変更するのは安全 (セキュア) ですか?](https://rvso.com/image/1127594/Apache%20%E3%81%AE%20html%2F%20%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%81%AE%E6%89%80%E6%9C%89%E8%80%85%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E3%81%AE%E3%81%AF%E5%AE%89%E5%85%A8%20(%E3%82%BB%E3%82%AD%E3%83%A5%E3%82%A2)%20%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
chmod などの使い方は知っているので、それは質問ではありません。 Apache で実行している小さなサーバー (Ubuntu LTS ) があり、標準フォルダーがあります/var/www/html/
。デフォルトでは、ルートがフォルダーの所有者ですhtml/
。
質問: フォルダーの所有者を変更することは安全ですかhtml/
?
答え1
内のファイルの所有権を変更することは完全に安全であり/var/www
、実際、そのフォルダー内のあらゆるものは自由に編集および変更できます。
たとえば、ユーザーが のtsmith
ファイルに書き込めるようにする必要がある場合/var/www/myweb
、これらのファイルの所有者を に設定してもまったく問題ありませんtsmith
。または、所有者をのままにしておき、sudo でユーザーを信頼している場合は、書き込みには sudo をroot
要求することもできます。tsmith
ファイルを編集する必要があるユーザーが複数いて、それらのユーザーに sudo 権限を与えたくない場合は、代わりにグループ メンバーシップを使用することもできます。たとえば、グループを作成してそのグループにユーザーを追加し、グループ所有権と関連ファイルへのグループ書き込みを設定して、そのグループのメンバーがそれらのファイルを変更できるようにします。これを行うときは、chmod g+s dir
新しいファイルが同じグループ所有権を継承するように、そのディレクトリで SetGID ビット ( ) を使用し、umask 002
各ユーザーのディレクトリで~/.profile
グループ書き込み権限を取得するようにする必要があります。そうしないと、新しいファイルは作成者だけが編集でき、グループの他のメンバーは編集できなくなります。
ただし、次のような悪い習慣には注意する必要があります。
グループに書き込み権限を与える場合は、ファイルの所有権を
www-data
ユーザーまたはグループに設定しないでください。ユーザーの重要な点は、権限のないユーザーであり、ファイルに書き込むことができないことです。外部ネットワークからアクセス可能なサーバー デーモン (Web サーバーなど) は通常、権限のないユーザーとして実行されるため、脆弱性が原因でハッキングされた場合でも、攻撃者が実行できる操作は最小限に抑えられます。www-data
www-data
例外:一部のウェブアプリでは、添付ファイルの保存などの実装のために、特定のファイルやフォルダへの書き込み権限が必要です。このような場合は、所有権を次のように設定する必要があります。
www-data
のみこれらのファイルについては、書き込み可能なファイルの数をwww-data
最小限に抑えます。同じ理由で、どのファイルも世界書き込み可能に設定しないでください。
admin
グループを作成する場合、Ubuntu で既に目的が設定されている、sudo
または特に、などの既存のユーザー グループを再利用しないでくださいwww-data
。これらのグループがファイルへの書き込みを意図していない場合は、システムのセキュリティが低下する可能性があります。代わりに、独自のグループを作成し、そこにメンバーを追加してください。
答え2
ルート権限 (所有権または単一権限) を持つディレクトリまたはファイルを使用することは、あまり安全ではありません。静的 HTML ファイルの場合、大きなセキュリティ上の問題にはなりませんが、スクリプト (PHP、JavaScript、フォームなど) が実行されると、深刻な問題が発生する可能性があります。
答え3
コンテンツ (html、画像など) のみを提供する必要がある場合は、apache2 ユーザー ( ) にコンテンツにアクセスする権限がある/var/www
限り、内のディレクトリ/ファイルに特別な所有権を設定する必要はありません。www-data
さらに作業が必要な場合は、所有権を変更する必要があるかもしれません。たとえば、CMS(WordPress、Joomlaなど)からファイルをアップロードする必要がある場合は、アップロードディレクトリの所有権を変更する必要がありますwww-data
(または少なくともそのユーザーに書き込み権限を付与する必要があります)。
私は個人的に、mod ( と同じ) を持つユーザー/var/www
と が所有するWeb サイト (つまり) ディレクトリを所有しています。root
1777
/tmp
/var/www/site1
www-data
それが役に立てば幸い!