根据Active DirectoryvalidationCVS用户

我有一个混合的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)。