更新:

更新:

请参阅下面的编辑,结果发现问题出在 uid/gid 到 sid 的映射上,并展示了一种有助于更快地理解问题的解决方法。


我们有一台 Ubuntu 11.04 服务器(我们称之为数据),使用以下工具加入 Windows 域:同样开放 到目前为止一切顺利,因为我能够:

  1. 使用 AD 凭据登录计算机
  2. 使用扩展 ACL 设置文件和文件夹的权限,它们就可以正常工作。因此,通过在文件夹上设置“域管理员”权限,我可以使用不同的域管理员帐户登录到计算机并访问该文件夹。

因此计算机本身知道我是哪个域组的成员,并能正确处理权限。

但当我想要从 samba 共享访问文件时出现了问题。Windows 似乎不明白我们正在谈论相同的“域管理员”或任何其他域用户/组。

细节

主文件夹已启用 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

因此我添加了“域管理员”的所有权限。(我可以跳过 MYDOMAIN\ 的内容,因为 MYDOMAIN 是该机器的默认域)

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

我可以在目录中做事

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

到目前为止一切顺利,数据了解域组。

但如果我尝试访问该共享窗户机器(来自 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/

现在,从 Windows 中,我可以看到文件:

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 ?我在这里遗漏了什么以及如何使其工作?

编辑:找到了解决方法

我找到了解决方法和可能的原因,但不知道如何解决,结果发现 id 之间发生了一些错误的映射。

如果我使用 wbinfo 查找 MYDOMAIN\Domain Admins 组的 sid 到 gid 的映射,我会发现映射的 unix gid 是 10010。如果我使用 gid 而不是名称来设置权限,则权限有效并且 Windows 可以理解它们:

$ sudo setfacl -m g:10010:rwx ./test_directory/

当我以数字形式枚举权限以查看 gid 和 sid 时,我发现在设置 MYDOMAIN\"Domain Admins" 之类的权限时,它实际上使用了不同的 GID

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

然后我查看了 smb.conf 中的 idmap 配置:

   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 设置权限,但这并不方便用户使用。我应该怎么做才能解决这个问题?

答案1

事实证明我仍然必须安装 Likewise-cifs 支持。

这是执行以下命令的问题:

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

致谢Likewise Open 6 和 Samba - 更好的开源文件服务器

现在,当将 SID 映射到 GID 时,我得到了正确的 GID,而不是短的 10010:

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

答案2

一个建议:同样 集中化不喜欢在带空格的名称周围使用引号。您应该改用反斜杠来标记组。因此,当我引用我的 Windows 组时域管理员在 Debian 中使用 Likewise Open,我会写%Domain\ Admins。您可以尝试一下,看看它现在是否正确分配了 GID?

更新:

睡了一晚后,我意识到我没有使用 Likewise Open,而是使用其竞争对手 Centrify Express。这不是一个选择,而是一个澄清,以便将来可能阅读答案的其他人。

我有一台可以安装 Likewise Open 的备用机器,我将使用它来重现您的问题并创建新的答案。抱歉造成混淆!

相关内容