4.4.2. web サイトを共有する
/var/www/html/ で web サイトを共有したい場合など、ファイルに samba_share_t タイプのラベルが付けられない場合があります。 このような場合には、 すべてのファイルやディレクトリを共有するよう samba_export_all_ro Boolean を使用して読み取り専用パーミッションを付与するか (現在のラベルに関わらず)、 samba_export_all_rw Boolean を使用して読み取りと書き込みのパーミッションを付与します (現在のラベルに関わらず)。
以下の例では、
/var/www/html/ 内に web サイトのファイルを作成してから、 そのファイルを Samba で共有し読み取りと書き込みのパーミッションを与えています。 ここでは、 httpd、 samba、 samba-common、 samba-client、 wget のパッケージがインストールされていることを前提としています。
- root ユーザーになり
/var/www/html/file1.htmlファイルを作成します。 次のコンテンツをコピーして/var/www/html/file1.htmlに貼り付けます。<html> <h2>File being shared through the Apache HTTP Server and Samba.</h2> </html>
<html> <h2>File being shared through the Apache HTTP Server and Samba.</h2> </html>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ls -Z /var/www/html/file1.htmlを実行してfile1.htmlの SELinux コンテキストを表示させます。ls -Z /var/www/html/file1.html -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/file1.html
$ ls -Z /var/www/html/file1.html -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/file1.htmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow file1.index.htmlにはhttpd_sys_content_tタイプのラベルが付けられています。デフォルトでは、Apache HTTP Server によるアクセスはできますが、 Samba によるアクセスはできません。- root ユーザーで
service httpd startを実行して Apache HTTP Server を起動します。service httpd start Starting httpd: [ OK ]
service httpd start Starting httpd: [ OK ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Linux ユーザーでの書き込みアクセスがあるディレクトリに移動し、
wget http://localhost/file1.htmlコマンドを実行します。 デフォルト設定に変更がなければ、 このコマンドは成功します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - root ユーザーで
/etc/samba/smb.confを編集します。 Samba で/var/www/html/ディレクトリを共有するため、 以下をこのファイルの末尾に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow /var/www/html/ディレクトリにはhttpd_sys_content_tタイプのラベルが付けられます。 デフォルトでは、httpd_sys_content_tタイプのラベルの付いたファイルやディレクトリには、 Linux パーミッションが付与されていても Samba からはアクセスできません。 Samba によるアクセスを許可するため、 root ユーザーで次のコマンドを実行し、samba_export_all_roBoolean をオンにします。setsebool -P samba_export_all_ro on
setsebool -P samba_export_all_ro onCopy to Clipboard Copied! Toggle word wrap Toggle overflow 再起動後、この変更を維持したくない場合は-Pを使用しないでください。samba_export_all_roBoolean をオンにすると、Samba からはいずれのタイプにもアクセスもできるようになるため注意してください。- root ユーザーで
service smb startを実行してsmbdを起動します。service smb start Starting SMB services: [ OK ]
service smb start Starting SMB services: [ OK ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow