web-dev-qa-db-ja.com

Sambaは完全なWindows-ACLをサポートできますか?

AD統合とACL対応ファイルシステムを備えたSamba 3ホストをセットアップしました。 Windowsクライアントを使用して、ユーザーとグループの権限を設定できます。

これまで、SambaはPOSIX ACLのrwx権限にマップするだけなので、Windowsで「変更」または「フルコントロール」権限を使用できません。また、xattrsとZFS ACLサポートについてもいくつか読んでいます。

誰かがPOSIX ACLを超えてWindows ACEに完全に似せるための最良の方法についてのヒントを与えることはできますか?

12
fabian

これは私がいつもそれをやった方法です、私がこれをどこで読んだかよくわかりません。

Samba共有のほとんどのWindows ACLオプションをADに接続するには、POSIX ACLとXATTRSの両方を有効にする必要があります。

/dev/sda2       /samba              ext3    user_xattr,acl  1   2

そして、smb.confで、次のようにidmapping、nt acls、および属性マッピングを有効にする必要があります。

idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
idmap backend = idmap_rid:<domain_netbios_name>=16777216-33554431

nt acl support = yes
inherit acls = yes

map acl inherit = yes 
map archive = no
map hidden = no
map read only = no
map system = no
store dos attributes = yes
inherit permissions = yes

次に、共有の管理者ユーザーを定義し、そのユーザーを使用してWindowsからセキュリティ設定を編集するだけです。

[public]
path = /share/Public
public = yes
writable = yes
printable = no
admin users = "DOMAIN\user"

唯一の問題は、既存のACL(rootを「否認」し、所有権をWindowsユーザーに譲渡する)とマップされていないユーザーグループに関連している可能性があります。

グループを手動でマッピングするには、次のようにする必要があります。

net groupmap delete ntgroup="Domain Admins"
net groupmap delete ntgroup="Domain Users"
net groupmap delete ntgroup="Domain Guests"

net groupmap add ntgroup="Domain Admins" rid=512 unixgroup=root
net groupmap add ntgroup="Domain Users" rid=513 unixgroup=users 
net groupmap add ntgroup="Domain Guests" rid=514 unixgroup=nobody 

組み込みセキュリティグループ用。

そして、あなたのすべてのグループのために:

groupadd mygroup
net groupmap delete ntgroup="mygroup"   
net groupmap add ntgroup="DOMAIN\mygroup" rid=1000  unixgroup=mygroup   type=d
7
Bojan Markovic

ファイルでPOSIX ACLを実際に使用できるようにする必要がない場合(たとえば、ユーザーがローカルでSambaコントローラーにログインできない場合)、vfsを使用して完全なNT ACLを作成できます。

 [global] 
ストアのdos属性= yes 
 [share] 
 vfsオブジェクト= acl_xattr 
4
Hubert Kario

2つのことを行う必要があります。

まず、ファイルシステムがACLをサポートしている必要があります。 ACLを有効にするfstabファイルの行の例を次に示します。もちろん、実際の行は異なります。

/dev/mapper/VolGroup00-SambaVol /samba ext3 defaults,acl 0 0

これを実行したら(そして再マウントまたは再起動して)、smb.confファイルでnt aclを有効にします。

[share1]
   path = /samba/share1
   nt acl support = yes
   writeable = yes

両方を実行し、Sambaを再起動したら、適切なACLが必要です。

1
Patrick Tescher