如何将Windows ACL映射到CIFS共享上的Linux?

上下文

我们有一台带有Active Directory域和networking共享的Windows服务器。

我有一台Linux机器,我想安装共享。

sudo mount -t cifs //server/share /mnt/share -o user=[act-dir user],domain=[domain],uid=[linux user],gid=[linux group] 

这或多或less是好的。 我的Linux用户被映射到共享上的所有文件,并且一些ACL被转换。 但是我想更进一步:

  • 不止一个用户连接到Linux机器
  • 每个Linux用户都有一个专用的Active Directory帐户
  • 如果存在,我希望每个Windows所有者都映射到相应的Linux所有者

一个解决scheme和问题

Samba提供了安装选项cifsacl ,它需要设置cifs.idmapwinbindd 。 两者都安装,我已经阅读了两个手册页,并试图configuration它们,但它不工作。 新装入的命令现在是:

 sudo mount -t cifs //server/share /mnt/share -o user=[act-dir user],domain=[domain],cifsacl 

但是,一切都映射到根:root,这意味着无法执行cifs.idmap。

其实,我并不是很惊讶,因为我不明白在哪里写实际映射,所以我应该在哪里写Windows userX实际映射到Linux用户? 我不确定winbinddconfiguration是否正确,参数的最小集合是什么,smbd和/或nmbd是否需要运行? 我需要在防火墙中打开端口吗?

背景资讯

股份结构

共享目录有几个子目录,一些共同点和一些“私人”(虽然私人的实际上是每个人都可读)。 每个用户需要不时访问公共空间,也需要访问其他用户的私有目录,但主要是/经常是他们自己的目录。

技术数据

  • RHEL 6,Samba 3.5.6
  • Ubuntu 12.04,Samba 3.6.3

您可能需要使用samba(winbind)中的用户名映射function来使映射工作,以便winbind知道每个Linux用户的AD帐户。 我相信用户名映射可以接受命令和列表(以及某些模式转换),但是如果Linux用户名可以匹配AD用户名,使用pam_winbind就更容易了。 我想,当映射工作时,你实际上可以开始validation共享是否工作。