第15章 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

15.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 です。このコンテキストの最後から 2 番目の部分、smbd_t がタイプになります。タイプは、プロセスのドメインやファイルのタイプを定義します。この例の場合、smbd プロセスは smbd_t ドメイン内で実行しています。
smbd がファイルにアクセスおよび共有をできるようにするには、ファイルに適切なラベルを付ける必要があります。たとえば、smbdsamba_share_t タイプのラベルが付いたファイルの読み込みと書き込みができますが、デフォルトでは httpd_sys_content_t タイプのラベルが付いたファイルにはアクセスできません。このタイプは Apache HTTP Server での使用を目的としているためです。Samba でホームディレクトリーや NFS ボリュームのエクスポートを可能にしたり、Samba がドメインコントローラとしての動作できるようにするなど、特定の動作を許可するには、ブール値を有効にする必要があります。


[15] 詳細は、『システム管理者のガイド』のSystem Administrator's Guide「Samba」セクションを参照してください。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。