下面是配置Linux使用LDAP用户认证的方法的完整攻略。
1. 安装LDAP客户端软件
首先需要安装LDAP客户端软件,推荐使用ldap-utils
和libnss-ldap
两个软件包。
sudo apt-get install ldap-utils libnss-ldap
2. 配置LDAP认证信息
编辑/etc/ldap/ldap.conf
文件,填入LDAP服务器信息。
sudo vi /etc/ldap/ldap.conf
设置以下内容:
# 指定LDAP服务器的URI,可以填写多个
uri ldap://ldap.example.com
# 指定用于连接LDAP服务器的dn和密码
# 这里用了一个DN和密码,也可以使用匿名绑定方式
# 注意换成实际的DN和密码
base dc=example,dc=com
binddn cn=admin,dc=example,dc=com
bindpw ldap_password
# 指定要使用的LDAP协议版本
ldap_version 3
# 指定搜索时使用的范围,可以是sub、one或base
# sub指搜索整个子树,one指只搜索当前节点及其直接子节点,base指只搜索当前节点
scope sub
3. 配置NSS
编辑/etc/nsswitch.conf
文件,将ldap
添加到passwd
、shadow
和group
行中。
sudo vi /etc/nsswitch.conf
将以下行:
passwd: compat
group: compat
shadow: compat
改为:
passwd: compat ldap
group: compat ldap
shadow: compat ldap
4. 测试LDAP认证配置
使用getent
命令测试是否能获取到LDAP用户信息。例如,可以使用以下命令查看LDAP用户列表:
getent passwd
如果成功获取LDAP用户列表,则配置成功。
示例1:使用LDAP账户登录
现在我们来测试使用LDAP账户登录。需要先创建一个LDAP用户,例如ldapuser
,并设置密码。
sudo ldapadduser ldapuser
sudo ldappasswd -x -w [LDAP管理员密码] -D "cn=admin,dc=example,dc=com" -S uid=ldapuser,ou=people,dc=example,dc=com
然后使用该账户登录,如果登录成功,则验证通过。
示例2:使用LDAP账户管理Samba共享
接下来我们来给LDAP用户发布Samba共享。需要先创建Samba共享目录,并设置访问权限。
然后在Samba配置文件中添加以下行:
[global]
# ... 其他配置
## 指定Samba用户需要使用的用户数据库类型
passdb backend = ldapsam:ldap://localhost
## LDAP管理员DN和密码
ldap admin dn = cn=admin,dc=example,dc=com
ldap admin password = ldap_password
## 指定要使用的LDAP版本
ldap ssl = no
ldap password sync = yes
ldap delete dn = no
## 将Samba用户与LDAP用户关联
ldap suffix = dc=example,dc=com
ldap user suffix = ou=people
ldap group suffix = ou=groups
## 允许Samba用户使用LDAP账户进行认证
# 注意smbpasswd一定要是可执行文件,而不是软链接等
passdb backend = ldapsam:ldap://127.0.0.1
smb passwd file = /usr/local/samba/private/smbpasswd
保存配置文件后,重启Samba服务,测试使用LDAP用户进行Samba共享访问。
至此,配置Linux使用LDAP用户认证的方法就讲解完毕了。