Red Hat Training

A Red Hat training course is available for RHEL 8

3.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

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

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

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

    例3.2 拡張 ACL の設定

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

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

      # setfacl -m group::--- /srv/samba/example/
      # setfacl -m default:group::--- /srv/samba/example/

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

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

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

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

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

        # setfacl -R -m other::--- /srv/samba/example/

      この設定は、このディレクトリーにのみ適用されます。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/

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

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

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

    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] 新規ファイルシステムオブジェクトの場合、作成者のプライマリーグループは、自動的にこのプリンシパルの権限を継承します。