我需要最简单的方法来验证 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,不要从第一个会话注销,以防出现问题。