1.9. Windows ACL で共有の設定

Samba は、共有およびファイルシステムオブジェクトへの Windows ACL の設定に対応します。これを使用すると、以下が可能になります。

  • きめ細かな Windows ACL を使用する
  • Windows を使用して共有権限およびファイルシステムの ACL を管理する

または、POSIX ACL を使用するように共有を設定することもできます。

詳細は、POSIX ACL を使用する Samba ファイル共有の設定 を参照してください。

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

1.9.1. SeDiskPrivilege 特権の付与

Windows ACL を使用する共有に対する権限を設定できるのは、SeDiskOperatorPrivilege 特権が付与されているユーザーおよびグループのみです。

手順

  1. たとえば、SeDiskOperatorPrivilege 特権を DOMAIN\Domain Admins グループに付与するには、以下のコマンドを実行します。

    # net rpc rights grant "DOMAIN\Domain Admins" SeDiskOperatorPrivilege -U "DOMAIN\administrator"
    Enter DOMAIN\administrator's password:
    Successfully granted rights.
    注記

    ドメイン環境では、SeDiskOperatorPrivilege をドメイングループに付与します。これにより、ユーザーのグループメンバーシップを更新し、権限を集中的に管理できます。

  2. SeDiskOperatorPrivilege が付与されているすべてのユーザーおよびグループをリスト表示するには、以下のコマンドを実行します。

    # net rpc rights list privileges SeDiskOperatorPrivilege -U "DOMAIN\administrator"
    Enter administrator's password:
    SeDiskOperatorPrivilege:
      BUILTIN\Administrators
      DOMAIN\Domain Admins

1.9.2. Windows ACL サポートの有効化

Windows ACL に対応する共有を設定するには、Samba でこの機能を有効にする必要があります。

前提条件

  • ユーザー共有が Samba サーバーに設定されている。

手順

  1. すべての共有に対してグローバルに有効にするには、次の設定を /etc/samba/smb.conf ファイルの [global] セクションに追加します。

    vfs objects = acl_xattr
    map acl inherit = yes
    store dos attributes = yes

    または、共有のセクションに同じパラメーターを追加して、個別の共有に対して Windows ACL サポートを有効にできます。

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

    # systemctl restart smb

1.9.3. Windows ACL を使用する共有の追加

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

手順

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

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

    # semanage fcontext -a -t samba_share_t "/srv/samba/example(/.*)?"
    # restorecon -Rv /srv/samba/example/
  3. /etc/samba/smb.conf ファイルにサンプル共有を追加します。たとえば、共有の write-enabled を追加するには、次のコマンドを実行します。

    [example]
    	path = /srv/samba/example/
    	read only = no
    注記

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

  4. すべての共有の [global] セクションで Windows ACL サポートを有効にしていない場合は、以下のパラメーターを [example] セクションに追加して、この共有に対してこの機能を有効にします。

    vfs objects = acl_xattr
    map acl inherit = yes
    store dos attributes = yes
  5. /etc/samba/smb.conf ファイルを検証します。

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

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

    # systemctl restart smb

1.9.4. Windows ACL を使用する共有の共有権限とファイルシステム ACL の管理

Windows ACL を使用する Samba 共有で共有権限およびファイルシステムの ACL を管理するには、コンピューターの管理 などの Windows アプリケーションを使用します。詳細は、Windows のドキュメントを参照してください。または、smbcacls ユーティリティーを使用して ACL を管理します。

注記

Windows からファイルシステムの権限を変更するには、SeDiskOperatorPrivilege 権限が付与されたアカウントを使用する必要があります。