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