14.4. 設定例


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

14.4.1. 作成したディレクトリーの共有

以下の例では、新しいディレクトリーを作成し、Samba でそのディレクトリーを共有します。
  1. samba パッケージ、samba-common パッケージ、および samba-client パッケージがインストールされていることを確認します。
    Copy to Clipboard Toggle word wrap
    ~]$ 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 ユーティリティーを使用してパッケージをインストールします。 Copy to Clipboard Toggle word wrap
    ~]# yum install package-name
  2. mkdir ユーティリティーを root で使用し、Samba でファイルを共有するための新しいトップレベルディレクトリーを作成します。
    Copy to Clipboard Toggle word wrap
    ~]# mkdir /myshare
  3. touch ユーティリティーの root を使用して、空のファイルを作成します。このファイルは、後で Samba 共有が正しくマウントされたことを確認するために使用されます。
    Copy to Clipboard Toggle word wrap
    ~]# touch /myshare/file1
  4. /etc/samba/smb.conf ファイルおよび Linux のパーミッションが設定されていれば、samba_share_t タイプでラベル付けされたファイルの読み取りと書き込みが可能になります。root で以下のコマンドを入力し、ラベルの変更を file-context 設定に追加します。
    Copy to Clipboard Toggle word wrap
    ~]# semanage fcontext -a -t samba_share_t "/myshare(/.*)?"
  5. restorecon ユーティリティーを root で使用し、ラベルの変更を適用します。
    Copy to Clipboard Toggle word wrap
    ~]# 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/ ディレクトリーを共有します。
    Copy to Clipboard Toggle word wrap
    [myshare]
    comment = My share
    path = /myshare
    public = yes
    writable = no
    
  7. Samba ファイルシステムをマウントするには、Samba アカウントが必要です。root で次のコマンドを入力して、Samba アカウントを作成します。username は、既存の Linux ユーザーです。たとえば、smbpasswd -a testuser は、Linux testuser ユーザーの Samba アカウントを作成します。
    Copy to Clipboard Toggle word wrap
    ~]# 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'! エラーが発生します。
  8. Samba サービスを再起動します。
    Copy to Clipboard Toggle word wrap
    ~]# systemctl start smb.service
  9. 利用可能な共有をリスト表示するには、次のコマンドを入力します。username は、手順 7 で追加した Samba アカウントです。パスワードを求められたら、手順 7 で Samba アカウントに割り当てたパスワードを入力します (バージョン番号は異なる場合があります)。
    Copy to Clipboard Toggle word wrap
    ~]$ 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 で実行して、新しいディレクトリーを作成します。このディレクトリーは、myshareの Samba 共有をマウントするために使用されます。
    Copy to Clipboard Toggle word wrap
    ~]# mkdir /test/
  11. root で次のコマンドを入力して、myshareの Samba 共有を /test/ にマウントし、username を、手順 7 のユーザー名に置き換えます。
    Copy to Clipboard Toggle word wrap
    ~]# mount //localhost/myshare /test/ -o user=username
    手順 7 で設定した username のパスワードを入力します。
  12. 手順 3 で作成したfile1 を表示する場合は、以下を実行します。
    Copy to Clipboard Toggle word wrap
    ~]$ ls /test/
    file1
    

14.4.2. Web サイトの共有

/var/www/html/ ディレクトリー内の Web サイトを共有する場合など、samba_share_t タイプでファイルにラベルを付けることはできません。このような場合は、samba_export_all_ro ブール値を使用して (現在のラベルに関係なく) 任意のファイルまたはディレクトリーを共有して読み取り専用権限を許可するかsamba_export_all_rw ブール値を使用して (現在のラベルに関係なく) 任意のファイルまたはディレクトリーを共有して読み取りおよび書き込み権限を許可します。
以下の例では、/var/www/html/ で Web サイトのファイルを作成し、Samba でそのファイルを共有することで、読み取り権限と書き込み権限を付与します。この例では、httpd パッケージ、samba パッケージ、samba-common パッケージ、samba-client パッケージ、および wget パッケージがインストールされていることを前提としています。
  1. root で、/var/www/html/file1.html ファイルを作成します。以下の内容をこのファイルにコピーして貼り付けます。
    Copy to Clipboard Toggle word wrap
    <html>
    <h2>File being shared through the Apache HTTP Server and Samba.</h2>
    </html>
    
  2. 次のコマンドを実行すると、file1.html の SELinux コンテキストが表示されます。
    Copy to Clipboard Toggle word wrap
    ~]$ 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
    
    ファイルには、httpd_sys_content_t のラベルが付けられています。デフォルトでは、Apache HTTP サーバーはこのタイプにアクセスできますが、Samba はアクセスできません。
  3. Apache HTTP サーバーを起動します。
    Copy to Clipboard Toggle word wrap
    ~]# systemctl start httpd.service
  4. ユーザーが書き込みアクセス権を持つディレクトリーに移動し、次のコマンドを実行します。デフォルト設定が変更されない限り、このコマンドは成功します。
    Copy to Clipboard Toggle word wrap
    ~]$ wget http://localhost/file1.html
    Resolving localhost... 127.0.0.1
    Connecting to localhost|127.0.0.1|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 84 [text/html]
    Saving to: `file1.html.1'
    
    100%[=======================>] 84          --.-K/s   in 0s      
    
    `file1.html.1' saved [84/84]
    
  5. root で/etc/samba/smb.conf を編集します。このファイルの下部に以下を追加し、Samba で/var/www/html/ ディレクトリーを共有します。
    Copy to Clipboard Toggle word wrap
    [website]
    comment = Sharing a website
    path = /var/www/html/
    public = no
    writable = no
    
  6. /var/www/html/ ディレクトリーには、httpd_sys_content_t タイプのラベルが付けられています。デフォルトでは、Samba は Linux の権限があっても、このタイプのラベルが付いたファイルおよびディレクトリーにはアクセスできません。Samba のアクセスを許可するには、samba_export_all_ro ブール値を有効にします。
    Copy to Clipboard Toggle word wrap
    ~]# setsebool -P samba_export_all_ro on
    システムを再起動しても変更を持続させない場合は、-P オプションを使用しないでください。samba_export_all_ro ブール値を有効にすると、Samba は任意のタイプにアクセスできるようになることに注意してください。
  7. Samba サービスを再起動します。
    Copy to Clipboard Toggle word wrap
    ~]# systemctl start smb.service
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.