第14章 Samba
Samba は、SMB (Server Message Block) プロトコルおよび CIFS (Common Internet File System) プロトコルのオープンソース実装で、さまざまなオペレーティングシステムでクライアント間でファイルサービスおよび印刷サービスを提供します。[15]
Red Hat Enterprise Linux では、samba パッケージにより Samba サーバーが提供されます。以下のコマンドを実行して、samba パッケージがインストールされているかどうかを確認します。
~]$ rpm -q samba
package samba is not installed
インストールされておらず、Samba を使用する場合は、
yum ユーティリティーを root ユーザーでインストールします。
~]# yum install samba
14.1. Samba と SELinux リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
SELinux が有効になると、Samba サーバー (
smbd) はデフォルトで制限付きで実行します。制限のあるサービスは独自のドメインで実行し、その他の制限のあるサービスとは区別されます。以下の例は、独自の領域で実行しているsmbd プロセスを示しています。この例では、samba がインストールされていることを前提としています。
- getenforce コマンドを実行して、SELinux が Enforcing モードで実行されていることを確認します。
~]$ getenforce EnforcingSELinux が Enforcing モードで実行されていると、このコマンドはEnforcingを返します。 - root で次のコマンドを入力して、
smbdを起動します。~]# systemctl start smb.serviceサービスが実行中であることを確認します。出力には以下の情報が含まれている必要があります (タイムスタンプのみは異なります)。~]# systemctl status smb.service smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled) Active: active (running) since Mon 2013-08-05 12:17:26 CEST; 2h 22min ago smbdプロセスを表示するには、以下のコマンドを実行します。~]$ ps -eZ | grep smb system_u:system_r:smbd_t:s0 9653 ? 00:00:00 smbd system_u:system_r:smbd_t:s0 9654? 00:00:00 smbdsmbdプロセスに関連付けられた SELinux コンテキストはsystem_u:system_r:smbd_t:s0です。コンテキストの 2 番目の部分smbd_tはタイプです。タイプは、プロセスのドメインとファイルのタイプを定義します。この例では、smbdプロセスがsmbd_tドメインで実行しています。
smbd がファイルにアクセスし、共有できるように、ファイルに正しくラベルを付ける必要があります。たとえば、smbd は、samba_share_t タイプのラベルが付いたファイルの読み取りと書き込みが可能ですが、デフォルトでは、httpd_sys_content_t タイプのラベルが付いたファイルにはアクセスできません。これは、Apache HTTP サーバーが使用することを目的としています。ブール値を有効にして、ホームディレクトリーや NFS ボリュームを Samba 経由でエクスポートできるようにしたり、Samba がドメインコントローラーとして機能できるようにする必要があります。