当社にはCentOS 7を搭載したウェブサーバーがあり、お客様はFTP(vsftpd)を介してウェブサイトを管理しています。SELinuxは強制モードです。
問題は、VSFTPDを介して作成/アップロードされたデータが適切なSELinuxコンテキストを継承しないことです。説明させてください。
たとえば、WordPressサイトの場合、サーバーにはそのままの状態で、を使用して表示できるいくつかのルールが既にsemanage fcontext -l |grep '/var/www'
あります。
/var/www/html(/.*)?/uploads(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
/var/www/html(/.*)?/wp-content(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
したがって、WordPressサイトをコピーするときに、別のサーバーから/var/www/html/
SSHでにあるディレクトリに、フォルダーwp-content/
とwp-content/uploads/
適切なhttpd_sys_rw_content_t
セキュリティコンテキストがあるとしましょう。ただし、これらのフォルダーがFTPを介して作成される場合、それらが取得するコンテキストはhttpd_sys_content_t
(rwなし)です。これは、顧客がサーバーにアップロードするサイトは、apacheユーザー/グループに書き込み権限を与えても、それらのディレクトリに書き込むことができないため、WordPress管理者が機能しないことを意味します。そのため、サイトをアップロードするときに、これを修正するためにサポートをリクエストする必要があります。これは関係者全員にとって時間の無駄です。
お客様が自分のサイトをhttpdocs
にアップロードしたとします。SSHを使用しmv httpdocs/ httpdocs.2/ && cp -pr httpdocs.2/ httpdocs/ && rm httpdocs.2/ -fr
て問題が解決した場合、データに問題はありません。
またrestorecon -Rv httpdocs/
、問題を修正することもできます。
つまり、質問は、VSFTPDを介して作成/アップロードされたディレクトリに、SSHを介してディレクトリが作成/アップロードされたときに継承されるように、適切なSELinuxコンテキストを継承させるにはどうすればよいですか?