我有一个混合的Linux / Windows软件开发环境,Linux客户端正在迁移到他们能够对Active Directory进行身份validation的系统。 (我觉得这个部分)
我们的实验室目前正在使用CVS对我们的源代码进行版本控制。 在迁移过程中,我们需要用户能够validation我们的CVS服务器。 我有这样的计划,当迁移发生时,我们将build立CVS服务器来对AD进行身份validation。
不幸的是,我对CVS没有太多的经验。 这个任务甚至可能吗? 据我所知,它可以设置为基于本地用户在系统上进行身份validation。 但是,由于实际用户不会将其凭据存储在本地服务器上(因为它将它们从AD中拉出), 是否可以pam
CVS依赖于pam
进行身份validation?
我已阅读有关使用用户凭据通过SSH访问CVS。 这是否会发生这种要求? 如果是这样,那么怎么设置呢?
我非常感谢帮助!
这将是相当长的,但我们无论如何做。 首先,是的,这是可以做到的。 我不能提供很多configurationCVS的方式,但是我可以提供所有您需要的function,使得Linux服务器能够对Active Directory进行身份validation。
这一切都以/etc/nsswitch.conf开头。 这里是相关的部分:
passwd: files ldap compat
shadow: files ldap compat
group: files ldap compat
现在,根据您使用的发行版,您将需要安装一些ldap软件包。 在Redhat / Fedora / CentOS下,这将是nss_ldap,在Debian / Ubuntu之类的,你需要libnss-ldap和libpam-ldap。 我也会推荐一些ldap-utils进行debugging。
使用上述名称服务将尝试使用LDAP,所以现在您需要configuration各种LDAP软件包以使用您的AD服务器。 search库应该是base cn=Users,dc=aminocom,dc=com
,绑定DN应该是binddn cn=LDAPsearch,cn=Users,dc=aminocom,dc=com
。 您将需要定义一个特定的用户以允许浏览AD。 我们创build了一个名为LDAPSearch的用户,并将其凭据放入一个名为.secret的单独文件中。 阅读这些软件包的文档以获取更多细节。 此外,我会build议一个软绑定策略和以下属性映射:
#服务的UNIX 3.5映射 nss_base_passwd cn =用户,dc = aminocom,dc = com?sub nss_base_shadow cn =用户,dc = aminocom,dc = com?sub nss_base_group cn =用户,dc = aminocom,dc = com?sub nss_map_object类posixAccount用户 nss_map_objectclass shadowAccount用户 nss_map_attribute uid sAMAccountName nss_map_attribute uidNumber msSFU30UidNumber nss_map_attribute gidNumber msSFU30GidNumber nss_map_attribute loginShell msSFU30LoginShell nss_map_attribute gecos名称 nss_map_attribute userPassword msSFU30Password nss_map_attribute homeDirectory msSFU30HomeDirectory nss_map_objectclass posixGroup组 nss_map_attribute uniqueMember msSFU30PosixMember nss_map_attribute cn cn pam_login_attribute sAMAccountName pam_filter objectclass = user pam_member_attribute msSFU30PosixMember pam_groupdn cn = nixUsers,cn =用户,dc = aminocom,dc = com pam_password广告
所有这些都假定您的域控制器上安装了Windows Services for Unix。 在AD中,您将需要configuration一个主Unix组(在我们的例子中称为nixUsers),并将每个CVS用户添加到该组中。
您应该可以直接使用AD(即不使用Windows的Unix服务),但这需要不同的属性映射。 你可能不得不在那里尝试一下。
现在我们进入PAMconfiguration。 在Debian下,基本上有4个文件需要修改:
1.)常用账号:
帐户所需的pam_unix.so破碎的阴影 足够的帐户pam_localuser.so 足够的帐户pam_succeed_if.so用户2.)common-auth:
auth需要pam_env.so auth足够pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid> = 500安静 validation足够的pam_ldap.so use_first_pass auth需要pam_deny.so
3.)常会:
会话可选pam_keyinit.so撤消 会话需要pam_limits.so 会话[成功= 1默认=忽略] pam_succeed_if.so服务在crond安静use_uid 会话需要pam_unix.so 会话可选pam_ldap.so
4.)通用密码
足够的密码pam_unix.so md5 shadow nullok try_first_pass
密码足够pam_ldap.so
密码需要pam_deny.so
在Redhat(及衍生产品)下,所有必要的更改应该放到/etc/pam.d/system-auth和/etc/pam.d/system-auth-ac的相关部分。
以上将允许用户使用AD凭证login。 然而,这不会自动为他们创build一个主目录(除非你做了更多的脚本),并且不允许他们通过linux更改密码。 这也可以完成,但它需要修改他们的工作站(如果他们使用Linux)。 还有更多的问题,请问。
我们在我们的许多服务器上使用它,就像一个魅力。
事实certificate,CVS只是使用PAM。 所以,如果你的服务器已经被configuration为对AD进行authentication,CVS也会收到authentication信息。
Wolfgangsz的build议对于完成第一步非常有帮助(通过LDAP [你也可以使用Winbind]对AD进行服务器authentication)。