我们正在尝试将 Linux 机器(debian 4.0)绑定到 W2k3 AD。我们已经正确配置了 kerberos,以便我们可以获取 TGT。并且用户正确地进行身份验证。但是,PAM 似乎是粘性检票口。例如,当我们尝试以 AD 用户之一的身份通过 SSH 连接到 linux 机器时,身份验证成功(根据 auth.log),但我从来没有得到 shell。默认环境配置正确,PAM 甚至可以正确创建 Homedir。作为参考,我们大致遵循:
4 回答
如果您确信除了 PAM 正常工作之外的所有内容,我建议将调试选项传递给 pam_krb5.so 以查看是否可以为正在发生的事情提供线索。
我还建议使用以下方法验证 nss-ldap 是否正确设置
getent passwd avalidusername
POSIX 帐户要求您在用户帐户中设置有效的 shell。使用 LDAP 时,这由属性 loginShell 引用。您需要使用 PAM 并将适当的属性映射到配置中的 loginShell 或 DC 上用于 UNIX 的活动 MS 服务,这将扩展 AD 架构以包含所需的 POSIX 属性。
请参阅http://www.ietf.org/rfc/rfc2307.txt作为对 RFC2307 的参考,它为 LDAP 定义了这一点。
我曾经在我们的服务器上使用过类似的东西。这是我们用来配置它的过程:
同样安装:
$ sudo apt-get update
$ sudo apt-get install likewise-open
加入域(假设域“domain.local”)
$ sudo domainjoin-cli join domain.local Administrator
$ sudo update-rc.d likewise-open defaults
$ sudo /etc/init.d/likewise-open start
假设您正在使用 sudo 并且希望 AD 用户能够拥有 sudoer 权限,您需要编辑 sudoers 文件。这可以通过以下命令完成:
$ sudo visudo
然后将以下内容添加到文件末尾(假设域“DOMAIN”和所有应该拥有 sudo 的用户都在活动目录中名为“linux_admin”的组中):
%DOMAIN\\linux_admin ALL=(ALL) ALL
一个简单的解决方案.. pam_krb5+ldap 项目
pam_krb5 PAM 模块的一个分支,它提供了一个非常易于使用的配置,用于针对现有的 Active Directory 域和/或 OpenLDAP 服务器使用 linux 客户端身份验证。