Ubuntu服务器+ Samba + PAM + Apple OpenDirectory

由于各种原因,我们希望将我们的文件服务器从OS X Server 10.9迁移到在Ubuntu 14.04LTS上运行的真正的Samba实现。 我们已经安装了Ubuntu并运行了Samba,甚至还安装了PAM设置来对照我们的Apple OpenDirectory服务器对用户进行身份validation。

但是,让Samba以我们想要的方式validation用户是相当具有挑战性的。 看来我们有两个select。 选项1只是让Samba将其委托给已经正常运行的PAM子系统; 选项2是使用Samba对LDAP和Kerberos的内置支持。 在Ubuntu的开箱即用的configuration似乎赞成选项1,并且确实看起来像这将是最简单的设置来pipe理长期。 (scheme2需要更多的configuration,包括对苹果模式的修改,我的理解在实践中并不是一个好主意。)

所以,所有人都说,我打算试图让选项1工作,(几乎这样做)。 目前, 针对OD的PAMauthentication已经起作用。 我可以sshlogin作为系统OD用户整天的系统。 但是,不好的是用户在Samba将它们识别为UNIX用户之前必须先执行此操作。 换句话说,在用户至less通过SSH成功​​连接一次之前,Samba将不会识别他们的凭证。 此外,我不相信Samba会看到OD组,因为试图限制连接到基于组名的某些共享也不起作用。

一旦用户使用SSHlogin了一次(或者在尝试使用标准的本地用户帐户时),Samba会永远接受他们的名字和密码。 在此之前,它只是拒绝他们。

smb.conf文件包含以下相关条目:

server role = standalone server obey pam restrictions = yes passdb backend = tdbsam unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . pam password change = yes guest account = nobody map to guest = bad user 

nsswitch.conf包含这些相关条目:

 passwd: compat ldap group: compat ldap shadow: compat ldap 

似乎必须有一个简单的修复或解决这个行为的方式。 使用“getent”,“id”,“groups”和“passwd”等命令正确地返回我期望的结果和行为。 只有smbd似乎有额外的东西需要

我一直没有find最好的方法来解决这个问题,并且已经花了好几天的时间翻阅文档,网站,O'Reilly的书籍,并试验了两种情况。 我也读过这个类似的post 。 有没有人以前走过这条路? 任何帮助非常感谢,包括明智的UNIX轶事和/或道义上的支持。

谢谢!