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
特権が付与されているユーザーおよびグループのみです。
手順
たとえば、
SeDiskOperatorPrivilege
特権をDOMAIN\Domain Admins
グループに付与するには、以下のコマンドを実行します。#
net rpc rights grant "DOMAIN\Domain Admins" SeDiskOperatorPrivilege -U "DOMAIN\administrator"
Enter DOMAIN\administrator's password: Successfully granted rights.注記ドメイン環境では、
SeDiskOperatorPrivilege
をドメイングループに付与します。これにより、ユーザーのグループメンバーシップを更新し、権限を集中的に管理できます。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 サーバーに設定されている。
手順
すべての共有に対してグローバルに有効にするには、次の設定を
/etc/samba/smb.conf
ファイルの[global]
セクションに追加します。vfs objects = acl_xattr map acl inherit = yes store dos attributes = yes
または、共有のセクションに同じパラメーターを追加して、個別の共有に対して Windows ACL サポートを有効にできます。
smb
サービスを再起動します。#
systemctl restart smb
1.9.3. Windows ACL を使用する共有の追加
/srv/samba/example/
ディレクトリーのコンテンツを共有し、Windows ACL を使用する example
という名前の共有を作成できます。
手順
ディレクトリーが存在しない場合は作成します。以下に例を示します。
#
mkdir -p /srv/samba/example/
SELinux を、
enforcing
モードで実行する場合は、そのディレクトリーにsamba_share_t
コンテキストを設定します。#
semanage fcontext -a -t samba_share_t "/srv/samba/example(/.*)?"
#restorecon -Rv /srv/samba/example/
/etc/samba/smb.conf
ファイルにサンプル共有を追加します。たとえば、共有の write-enabled を追加するには、次のコマンドを実行します。[example] path = /srv/samba/example/ read only = no
注記ファイルシステムの ACL に関係なく、
read only = no
を設定しないと、Samba がディレクトリーを読み取り専用モードで共有します。すべての共有の
[global]
セクションで Windows ACL サポートを有効にしていない場合は、以下のパラメーターを[example]
セクションに追加して、この共有に対してこの機能を有効にします。vfs objects = acl_xattr map acl inherit = yes store dos attributes = yes
/etc/samba/smb.conf
ファイルを検証します。#
testparm
firewall-cmd
ユーティリティーを使用して必要なポートを開き、ファイアウォール設定を再読み込みします。#
firewall-cmd --permanent --add-service=samba
#firewall-cmd --reload
smb
サービスを再起動します。#
systemctl restart smb
1.9.4. Windows ACL を使用する共有の共有権限とファイルシステム ACL の管理
Windows ACL を使用する Samba 共有で共有権限およびファイルシステムの ACL を管理するには、コンピューターの管理
などの Windows アプリケーションを使用します。詳細は、Windows のドキュメントを参照してください。または、smbcacls
ユーティリティーを使用して ACL を管理します。
Windows からファイルシステムの権限を変更するには、SeDiskOperatorPrivilege
権限が付与されたアカウントを使用する必要があります。