Ubuntu 服务器上的 Active Directory 用户身份验证

Ubuntu 服务器上的 Active Directory 用户身份验证

我需要最简单的方法来验证 Ubuntu Server 上的 Active Directory 用户(登录时)。

我正在尝试使用 libnss-ldap,但它只适用于普通 LDAP 服务器(如 SLAPD),但现在适用于 Active Directory。我听说 libnss-ldap 有一点内存泄漏,他们停止开发它,所以我应该改用 libnss-ldapd 或 sssd,但它们目前太复杂了。

答案1

有一个非常简单的设置,只需要 samba 和 pam_mkhomedir.so(使用 apt-get install)

然后创建一个新文件来配置身份验证,内容如下。编辑文件顶部的变量。第一个条目(工作组)是您的域的 NETBIOS 名称。

#!/bin/bash
ADSWorkgroup="yourdomain"
ADSDomain="yourdomain.com"
ADSServer="domaincontroller.yourdomain.com"
AdminUser="[email protected]"

authconfig --update --kickstart --enablewinbind --enablewinbindauth --smbsecurity=ads \
--smbworkgroup=$ADSWorkgroup --smbrealm=$ADSDomain \
--smbservers=$ADSServer --winbindjoin=$AdminUser \
--winbindtemplatehomedir=/home/%U --winbindtemplateshell=/bin/bash \
--enablewinbindusedefaultdomain --enablelocauthorize

创建文件后,使用 使其可执行chmod +x <filename>。运行该文件并在系统询问时输入您的 AD 凭据。

然后编辑 /etc/pam.d/sshd,在“pam_selinux.so close”后添加以下行

session required pam_mkhomedir.so skel=/etc/skel/ umask=0022

最后,使用 visudo 通过在 wheel 条目后添加以下内容来允许适当的 AD 组使用 sudo:

"%domain admins"     ALL=(ALL)     ALL

一切就绪!请确保从新会话尝试 ssh,不要从第一个会话注销,以防出现问题。

相关内容