Menu Close

Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第14章 Samba

Samba は、Server Message Block(SMB)プロトコルおよび Common Internet File System(CIFS)プロトコルのオープンソースの実装です。[15]
Red Hat Enterprise Linux では、samba パッケージが Samba サーバーを提供します。以下のコマンドを入力して、samba パッケージがインストールされ ているかどうかを確認します。
~]$ rpm -q samba
package samba is not installed
インストールされておらず、Samba を使用する場合は、root ユーザーとして yum ユーティリティーを使用してインストールします。
~]# yum install samba

14.1. Samba および SELinux

SELinux を有効にすると、Samba サーバー(smbd)はデフォルトで制限のある実行されます。制限のあるサービスは独自のドメインで実行され、他の制限のあるサービスから分離されます。以下の例は、独自のドメインで実行している smbd プロセスを示しています。この例では、samba パッケージがインストールされていることを前提としています。
  1. getenforce コマンドを実行して、SELinux が Enforcing モードで実行されていることを確認します。
    ~]$ getenforce
    Enforcing
    
    このコマンドは、SELinux が Enforcing モードで実行している場合に Enforcing を返します。
  2. 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
    
  3. 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 smbd
    
    smbd プロセスに関連付けられた SELinux コンテキストは、system _u:system_r:smbd _t:s0 です。次のコンテキストの最後の部分は smbd_t です。タイプは、プロセスのドメインとファイルのタイプを定義します。この場合、smbd プロセスは smbd _t ドメインで実行されます。
smbd がアクセスして共有できるように、ファイルに適切にラベル付けする必要があります。たとえば、smbdsamba_share_t タイプのラベルが付いたファイルに読み取りおよび書き込みできますが、デフォルトでは、Apache HTTP Server が使用することを目的としている httpd_sys_content_t タイプのラベルが付いたファイルにアクセスできません。Samba を介してホームディレクトリーや NFS ボリュームをエクスポートしたり、Samba がドメインコントローラーとして動作することができるようにするなど、特定の動作を許可するブール値を有効にする必要があります。