13.4. 設定例
以下の例は、SELinux が Apache HTTP サーバーを補完する方法と、Apache HTTP サーバーの完全な機能を維持する方法の実例を紹介します。
13.4.1. 静的サイトの実行
静的 Web サイトを作成するには、その Web サイトの
.html
ファイルに httpd_sys_content_t
タイプのラベルを付けます。デフォルトでは、Apache HTTP サーバーは httpd_sys_content_t
タイプのラベルが付けられたファイルに書き込みできません。以下の例では、読み取り専用の Web サイトのファイルを保存する新しいディレクトリーを作成します。
- root で
mkdir
ユーティリティーを使用して、最上位のディレクトリーを作成します。~]# mkdir /mywebsite
- root として
/mywebsite/index.html
ファイルを作成します。以下の内容を/mywebsite/index.html
にコピーアンドペーストします。<html> <h2>index.html from /mywebsite/</h2> </html>
- Apache HTTP サーバーが、
/mywebsite/
、およびその下のファイルとサブディレクトリーに読み取り専用でアクセスできるようにするには、ディレクトリーにhttpd_sys_content_t
タイプのラベルを付けます。root で以下のコマンドを入力し、ラベルの変更を file-context 設定に追加します。~]# semanage fcontext -a -t httpd_sys_content_t "/mywebsite(/.*)?"
restorecon
ユーティリティーを root として使用し、ラベルを変更します。~]# restorecon -R -v /mywebsite restorecon reset /mywebsite context unconfined_u:object_r:default_t:s0->system_u:object_r:httpd_sys_content_t:s0 restorecon reset /mywebsite/index.html context unconfined_u:object_r:default_t:s0->system_u:object_r:httpd_sys_content_t:s0
- この例では、root として
/etc/httpd/conf/httpd.conf
ファイルを編集します。既存のDocumentRoot
オプションをコメントアウトします。DocumentRoot "/mywebsite"
オプションを追加します。編集後、これらのオプションは以下のようになります。#DocumentRoot "/var/www/html" DocumentRoot "/mywebsite"
- root で以下のコマンドを入力して、Apache HTTP Server のステータスを確認します。サーバーが停止している場合は、起動します。
~]# systemctl status httpd.service httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled) Active: inactive (dead)
~]# systemctl start httpd.service
サーバーが実行している場合は、root で以下のコマンドを実行してサービスを再起動します (httpd.conf
に加えた変更も適用されます)。~]# systemctl status httpd.service httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled) Active: active (running) since Wed 2014-02-05 13:16:46 CET; 2s ago
~]# systemctl restart httpd.service
- Web ブラウザーを使用して
http://localhost/index.html
に移動します。以下が表示されます。index.html from /mywebsite/