1.7. POSIX ACL を使用した Samba ファイル共有の設定


Samba は、Linux サービスとして、POSIX ACL との共有に対応します。chmod などのユーティリティーを使用して、Samba サーバーの権限をローカルに管理できます。拡張属性に対応するファイルシステムに共有が保存されている場合は、複数のユーザーおよびグループで ACL を定義できます。

注記

代わりにきめ細かい Windows ACL を使用する必要がある場合は、Windows ACL を使用する共有の設定 を参照してください。

このセクションの一部は、Samba Wiki に公開されているドキュメント Setting up a Share Using POSIX ACLs に掲載されています。ライセンスは、CC BY 4.0 にあります。著者および貢献者は、Wiki ページの history タブを参照してください。

1.7.1. POSIX ACL を使用する共有の追加

/srv/samba/example/ ディレクトリーのコンテンツを提供し、POSIX ACL を使用する example という名前の共有を作成できます。

前提条件

Samba が、以下のいずれかのモードで設定されている。

手順

  1. ディレクトリーが存在しない場合は作成します。以下に例を示します。

    # mkdir -p /srv/samba/example/
    Copy to Clipboard Toggle word wrap
  2. SELinux を、enforcing モードで実行する場合は、そのディレクトリーに samba_share_t コンテキストを設定します。

    # semanage fcontext -a -t samba_share_t "/srv/samba/example(/.*)?"
    # restorecon -Rv /srv/samba/example/
    Copy to Clipboard Toggle word wrap
  3. ディレクトリーにファイルシステムの ACL を設定します。詳細は、以下を参照してください。

  4. /etc/samba/smb.conf ファイルにサンプルの共有を追加します。たとえば、共有の write-enabled を追加するには、次のコマンドを実行します。

    [example]
    	path = /srv/samba/example/
    	read only = no
    Copy to Clipboard Toggle word wrap
    注記

    ファイルシステムの ACL に関係なく、read only = no を設定しないと、Samba がディレクトリーを読み取り専用モードで共有します。

  5. /etc/samba/smb.conf ファイルを検証します。

    # testparm
    Copy to Clipboard Toggle word wrap
  6. firewall-cmd ユーティリティーを使用して必要なポートを開き、ファイアウォール設定を再読み込みします。

    # firewall-cmd --permanent --add-service=samba
    # firewall-cmd --reload
    Copy to Clipboard Toggle word wrap
  7. smb サービスを再起動します。

    # systemctl restart smb
    Copy to Clipboard Toggle word wrap

1.7.2. POSIX ACL を使用する Samba 共有での標準的な Linux ACL の設定

Linux の標準 ACL は、所有者、グループ、その他の未定義ユーザーの権限の設定に対応します。ユーティリティーの chownchgrp、および chmod を使用して ACL を更新できます。正確な制御が必要な場合は、より複雑な POSIX ACL を使用します。以下を参照してください。

POSIX ACL を使用する Samba 共有での拡張 ACL の設定

以下の手順では、/srv/samba/example/ ディレクトリーの所有者を root ユーザーに設定し、Domain Users グループに読み取りおよび書き込みの権限を付与して、他のすべてのユーザーのアクセスを拒否します。

前提条件

  • ACL を設定する Samba 共有がある。

手順

# chown root:"Domain Users" /srv/samba/example/
# chmod 2770 /srv/samba/example/
Copy to Clipboard Toggle word wrap

注記

ディレクトリーで set-group-ID (SGID) ビットを有効にすると、新しいディレクトリーエントリーを作成したユーザーのプライマリーグループに設定する通常の動作の代わりに、すべての新しいファイルとサブディレクトリーのデフォルトグループが、そのディレクトリーグループのデフォルトグループに自動的に設定されます。

1.7.3. POSIX ACL を使用する Samba 共有での拡張 ACL の設定

共有ディレクトリーが保存されているファイルシステムが拡張 ACL に対応している場合は、それを使用して複雑な権限を設定できます。拡張 ACL には、複数のユーザーおよびグループの権限を指定できます。

拡張 POSIX ACL を使用すると、複数のユーザーおよびグループで複雑な ACL を設定できます。ただし、設定できるのは以下の権限のみです。

  • アクセスなし
  • 読み取りアクセス
  • 書き込みアクセス
  • 完全な制御

フォルダーの作成やデータの追加 など、詳細な Windows 権限が必要な場合は、Windows ACL を使用するように共有を設定します。Windows ACL を使用する共有の設定 を参照してください。

以下の手順では、共有で拡張 ACL を有効にする方法を説明します。また、拡張 ACL の設定例も含まれています。

前提条件

  • ACL を設定する Samba 共有がある。

手順

  1. /etc/samba/smb.conf ファイルの共有セクションで以下のパラメーターを有効にして、拡張 ACL の ACL 継承を有効にします。

    inherit acls = yes
    Copy to Clipboard Toggle word wrap

    詳細は、man ページの smb.conf(5) のパラメーターの説明を参照してください。

  2. smb サービスを再起動します。

    # systemctl restart smb
    Copy to Clipboard Toggle word wrap
  3. ディレクトリーの ACL を設定します。以下に例を示します。

    例1.2 拡張 ACL の設定

    以下の手順は、/srv/samba/example/ ディレクトリーに対して、Domain Admins グループに読み取り、書き込み、および実行の権限、Domain Users グループに対する読み取りおよび実行の権限を設定し、その他の全員のアクセスを拒否します。

    1. ユーザーアカウントのプライマリーグループへの自動許可権限を無効にします。

      # setfacl -m group::--- /srv/samba/example/
      # setfacl -m default:group::--- /srv/samba/example/
      Copy to Clipboard Toggle word wrap

      ディレクトリーのプライマリーグループは、さらに動的な CREATOR GROUP プリンシパルにマッピングされます。Samba 共有で拡張 POSIX ACL を使用すると、このプリンシパルは自動的に追加され、削除できません。

    2. ディレクトリーに権限を設定します。

      1. Domain Admins グループに読み取り、書き込み、および実行の権限を付与します。

        # setfacl -m group:"DOMAIN\Domain Admins":rwx /srv/samba/example/
        Copy to Clipboard Toggle word wrap
      2. Domain Users グループに読み取りおよび実行の権限を付与します。

        # setfacl -m group:"DOMAIN\Domain Users":r-x /srv/samba/example/
        Copy to Clipboard Toggle word wrap
      3. その他 の ACL エントリーに権限を設定し、その他の ACL エントリーに一致しないユーザーへのアクセスを拒否します。

        # setfacl -R -m other::--- /srv/samba/example/
        Copy to Clipboard Toggle word wrap

      この設定は、このディレクトリーにのみ適用されます。Windows では、これらの ACL は このフォルダーのみ のモードにマッピングされます。

    3. 前の手順で設定した権限を、このディレクトリーに作成した新規ファイルシステムのオブジェクトから継承できるようにするには、以下のコマンドを実行します。

      # setfacl -m default:group:"DOMAIN\Domain Admins":rwx /srv/samba/example/
      # setfacl -m default:group:"DOMAIN\Domain Users":r-x /srv/samba/example/
      # setfacl -m default:other::--- /srv/samba/example/
      Copy to Clipboard Toggle word wrap

      この設定では、プリンシパルの このフォルダーのみ モードが、このフォルダー、サブフォルダー、およびファイル に設定されます。

    Samba は、手順に設定されている権限を、以下の Windows ACL にマッピングします。

    Expand
    プリンシパルアクセス適用先

    Domain\Domain Admins

    完全な制御

    このフォルダー、サブフォルダー、およびファイル

    Domain\Domain Users

    読み取りおよび実行

    このフォルダー、サブフォルダー、およびファイル

    Everyone [a]

    なし

    このフォルダー、サブフォルダー、およびファイル

    owner (Unix User\owner) [b]

    完全な制御

    このフォルダーのみ

    primary_group (Unix User\primary_group) [c]

    なし

    このフォルダーのみ

    CREATOR OWNER [d] [e]

    完全な制御

    サブフォルダーおよびファイルのみ

    CREATOR GROUP [e] [f]

    なし

    サブフォルダーおよびファイルのみ

    [a] Samba は、このプリンシパルの権限を その他 の ACL エントリーからマッピングします。
    [b] Samba は、ディレクトリーの所有者をこのエントリーにマッピングします。
    [c] Samba は、ディレクトリーのプライマリーグループをこのエントリーにマッピングします。
    [d] 新規ファイルシステムオブジェクトでは、作成者はこのプリンシパルの権限を自動的に継承します。
    [e] POSIX ACL を使用する共有では、このプリンシパルの設定または削除には対応していません。
    [f] 新規ファイルシステムオブジェクトの場合、作成者のプライマリーグループは、自動的にこのプリンシパルの権限を継承します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat