Menu Close

Red Hat Training

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

14.4. 設定の例

以下の例は、SELinux が Samba サーバーを補完する方法と、Samba サーバーの完全な機能を維持する方法に関する実際のデモを紹介します。

14.4.1. 作成するディレクトリーの共有

以下の例では、新しいディレクトリーを作成し、Samba を介してそのディレクトリーを共有します。
  1. samba パッケージ、samba-common パッケージ、および samba-client パッケージがインストールされていることを確認します。
    ~]$ rpm -q samba samba-common samba-client
    package samba is not installed
    package samba-common is not installed
    package samba-client is not installed
    
    これらのパッケージのいずれかがインストールされていない場合は、root で yum ユーティリティーを使用してインストールします。
    ~]# yum install package-name
  2. mkdir ユーティリティーを root として使用して、Samba を介してファイルを共有する新しい最上位ディレクトリーを作成します。
    ~]# mkdir /myshare
  3. touch ユーティリティーの root を使用して空のファイルを作成します。このファイルは後で、Samba 共有が正しくマウントされたことを確認するために使用されます。
    ~]# touch /myshare/file1
  4. SELinux により、/etc/samba/smb.conf ファイルと Linux のパーミッションが随時設定されない限り、Samba が samba_share_t タイプのラベルが付いたファイルに読み取りおよび書き込みを行うことができます。root で以下のコマンドを入力し、ラベルの変更を file-context 設定に追加します。
    ~]# semanage fcontext -a -t samba_share_t "/myshare(/.*)?"
  5. root として restorecon ユーティリティーを使用して、ラベルの変更を適用します。
    ~]# restorecon -R -v /myshare
    restorecon reset /myshare context unconfined_u:object_r:default_t:s0->system_u:object_r:samba_share_t:s0
    restorecon reset /myshare/file1 context unconfined_u:object_r:default_t:s0->system_u:object_r:samba_share_t:s0
    
  6. root で /etc/samba/smb.conf を編集します。Samba を介して /myshare/ ディレクトリーを共有するには、このファイルの下部に以下を追加します。
    [myshare]
    comment = My share
    path = /myshare
    public = yes
    writable = no
    
  7. Samba ファイルシステムをマウントするには、Samba アカウントが必要です。root で次のコマンドを実行し、Samba アカウントを作成します。ここで、username は既存の Linux ユーザーになります。たとえば、smbpasswd -a testuser は、Linux testuser ユーザーの Samba アカウントを作成します。
    ~]# smbpasswd -a testuser
    New SMB password: Enter a password
    Retype new SMB password: Enter the same password again
    Added user testuser.
    
    上記のコマンドを入力して、システムに存在しないアカウントのユーザー名を指定すると、Cannot locate Unix account for 'username'! error になります
  8. Samba サービスを起動します。
    ~]# systemctl start smb.service
  9. 以下のコマンドを入力して、利用可能な共有の一覧を表示します。username は、手順 7 に追加された Samba アカウントに置き換えます。パスワードの入力を求められたら、ステップ 7 で Samba アカウントに割り当てられたパスワードを入力します(バージョン番号が異なる場合があります)。
    ~]$ smbclient -U username -L localhost
    Enter username's password:
    Domain=[HOSTNAME] OS=[Unix] Server=[Samba 3.4.0-0.41.el6]
    
    Sharename       Type      Comment
    ---------       ----      -------
    myshare         Disk      My share
    IPC$            IPC       IPC Service (Samba Server Version 3.4.0-0.41.el6)
    username        Disk      Home Directories
    Domain=[HOSTNAME] OS=[Unix] Server=[Samba 3.4.0-0.41.el6]
    
    Server               Comment
    ---------            -------
    
    Workgroup            Master
    ---------            -------
    
  10. mkdir ユーティリティーを root として使用して、新しいディレクトリーを作成します。このディレクトリーは、my share Samba 共有をマウントするために使用されます。
    ~]# mkdir /test/
  11. root で以下のコマンドを実行して、my share Samba 共有を /test/ にマウントします。username は、手順 7 のユーザー名に置き換えます
    ~]# mount //localhost/myshare /test/ -o user=username
    ステップ 7 で設定した ユーザー名のパスワード を入力します。
  12. 以下のコマンドを入力して、手順 3 で作成した file1 ファイルを表示します。
    ~]$ ls /test/
    file1