我们有几台Linux服务器,使用PAM和Kerberos 5在Windows Active Directory服务器上validationLinux用户密码。我们使用的Linux发行版是CentOS 6。
在一个系统上,我们有几个像CVS和Subversion这样的版本控制系统,这两个系统都通过PAM对用户进行身份validation,以便用户可以使用他们正常的Unix或者其他版本。 Windows AD帐户。
由于我们开始使用Kerberos进行密码validation,因此我们体验到客户机上的CVS在build立连接时往往要慢得多。 CVS在每个请求上validation用户(例如,cvs diff,log,update …)。
有可能cachingkerberos使用的凭据,那么每当用户执行一个cvs动作时,都不需要询问Windows AD服务器。
我们的PAMconfiguration/etc/pam.d/system-auth如下所示:
auth required pam_env.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 500 quiet auth sufficient pam_krb5.so use_first_pass auth required pam_deny.so account required pam_unix.so broken_shadow account sufficient pam_succeed_if.so uid < 500 quiet account [default=bad success=ok user_unknown=ignore] pam_krb5.so account required pam_permit.so password requisite pam_cracklib.so try_first_pass retry=3 password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok password sufficient pam_krb5.so use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session optional pam_krb5.so
名为“ sssd ”的程序可以为离线(和caching)logincaching(Kerberos)凭证。 我不确定sssd是否会在正常运行时(即不在线时)使用caching的Kerberos凭据,您必须尝试一下。
更多关于sssd的信息在这里 。
通过PAM的任何身份validation将始终存在这个问题。 避免它的唯一方法是克服服务本身,而不是使用pam栈来实现身份validation。
一种方法是使用ssh访问cvs存储库并使用Kerberos来authenticationssh。 (谷歌SSH的GSSAPI)。
如果你不想允许SSH服务器访问CVS服务器的CVS服务器, 有关示例,请参阅