Linux的acls使用错误的GID的域组,但数字GID确定

请看下面的编辑 ,事实certificate,问题是与UID / GID SID映射,并显示一个解决方法,这将有助于更快地了解问题。


我们有一台Ubuntu 11.04服务器机器(让我们称之为数据)join到Windows域, 同样提供了开放的工具。迄今为止,这是非常好的,因为我能够:

  1. 使用AD凭据login到计算机
  2. 设置扩展ACL文件和文件夹的权限,他们的工作。 所以通过在文件夹上设置“域pipe理员”权限,我可以login到不同的域pipe理员帐户的机器,并访问该文件夹。

所以电脑本身就能理解我所属的域组,并能正确处理权限。

但问题是,当我想从桑巴共享访问文件。 Windows似乎不明白,我们正在谈论相同的“域pipe理员”或任何其他域用户/组。

细节

主文件夹已启用acl

我在smb.conf中的共享:

[home] path = /home/local/MYDOMAIN browsable = yes guest ok = no read only = no writeable = yes valid users = MYDOMAIN\Administrator, @MYDOMAIN\"Domain Users", @MYDOMAIN\"Domain Admins" write list = @MYDOMAIN\"Domain Users", @MYDOMAIN\"Domain Admins" nt acl support = yes create mask = 700 directory mask = 700 hide dot files = yes 

到目前为止这么好,我可以访问该文件夹的读/执行权限设置为“其他”

因此,让我们尝试访问设置了域权限的test_directory。 我删除任何Unix权限:

 janis.veinbergs@data:/home/local/MYDOMAIN$ whoami janis.veinbergs janis.veinbergs@data:/home/local/MYDOMAIN$ id janis.veinbergs ...1319633408(domain^admins)... janis.veinbergs@data:/home/local/MYDOMAIN$ cd /home/local/MYDOMAIN janis.veinbergs@data:/home/local/MYDOMAIN$ sudo chown root:root ./test_directory/ janis.veinbergs@data:/home/local/MYDOMAIN$ sudo chmod 700 ./test_directory/ 

所以在机器上,如果我尝试

 ls ./test_directory/ 

显然,我明白了

 ls: cannot open directory ./test_directory/: Permission denied 

所以我添加“域pipe理员”的所有权限。 (我可以跳过MYDOMAIN \的东西,因为MYDOMAIN是机器的默认域)

 $ sudo setfacl -mg:MYDOMAIN\\"Domain Admins":rwx ./test_directory/ 

我可以在目录中做些事情

 $ echo "yay" >> ./test_directory/test.txt $ ls ./test_directory/ test.txt 

到目前为止,数据理解域组。

但是,如果我尝试访问Windows机器上的共享(从PowerShell):

 PS> whoami mydomain\janis.veinbergs PS> gci \\data\home\test_directory Get-ChildItem : Access to the path '\\data\home\test_directory' is denied. 

现在,从数据,我将添加其他人的权限,所以我可以从Windows访问该文件夹:

 $ sudo chmod o+rx ./test_directory/ 

现在,从窗口,我可以看到文件:

 PS> gci \\data\home\test_directory Directory: \\data\home\test_directory Mode LastWriteTime Length Name ---- ------------- ------ ---- ----- 2012.02.06. 14:56 4 test.txt 

现在我可以查看属性窗口中的权限(本地化,但你可以得到的想法) 权限属性

我想知道为什么它显示了Unix Group \ domain ^ admins而不是MYDOMAIN \ domain ^ admins? 我在这里错过了什么,以及如何使它工作?

编辑:find一个解决方法

我发现一个解决方法和可能的原因,但不知道如何解决事实certificate,一些错误的ID之间的映射正在发生。

如果我用wbinfo查找MYDOMAIN \ Domain Admins组的sid-to-gid映射,我发现映射的unix gid是10010.而如果我使用gid设置权限,而不是名称,权限工作和Windows理解他们:

 $ sudo setfacl -mg:10010:rwx ./test_directory/ 

当我列举数字forms的权限,看到GID和SID的,我看到,当设置权限像MYDOMAIN \“域pipe理员”,它实际上使用不同的GID

 $ getfacl -n ./test_directory/ # file: test_directory/ # owner: 0 # group: 0 user::rwx group::rx group:10010:rwx <-- this is the actual GID mapping for MYDOMAIN\\"Domain Admins" group (setfacl -mg:10010:rwx) and it works when browsing share with windows group:1319633408:rwx <-- this entry is when setting permission like setfacl -mg:MYDOMAIN\\"Domain Admins":rwx mask::rwx other::--- 

然后我在smb.conf中查看了我的idmapconfiguration:

  idmap domains = ALL idmap config ALL:backend = lwicompat_v4 idmap config ALL:default = yes idmap config ALL:readonly = yes idmap uid = 10000-33554431 idmap gid = 10000-33554431 

我看到来自ACL条目1319633408的gid没有进入定义的范围。 所以我试图扩大范围到10000-3355443100,重新启动smbd,但它仍然没有工作。

所以,现在我有一个解决方法,使用gid的,sid的设置权限,但那不是用户友好的。 我该怎么办才能解决这个问题?

事实certificate,我仍然必须安装同样的CIFS支持。

这是执行这些命令的问题:

 $ /opt/likewise/bin/samba-interop-install --install $ service smbd restart $ service winbind restart 

信用同样打开6&Samba – 一个更好的开源文件服务器

现在,当映射SID到GID,我得到正确的GID同样使用,而不是短的10010:

 sudo wbinfo -n "Domain Admins" <i get long SID: S-...-512> wbinfo -Y S-...-512 1319633408 

一个build议: 同样 Centrify不喜欢名称与空格的引号。 您应该使用反斜线来logging组。 所以,当我使用Likewise Open在Debian中引用我的Windows组Domain Admins时,我会写%Domain\ Admins 。 你可以尝试,看看现在是否正确地分配GID?

更新:

经过一个良好的睡眠,我意识到我没有使用Likewise Open,而是他们的竞争对手Centrify Express。 这不是一个投票,而是一个可以在未来阅读答案的人的澄清。

我有一台备用机器,我可以安装同样打开,我会用它来重新创build你的问题,并创build一个新的答案。 对困惑感到抱歉!