LDAP 网络用户账户
简介
本单元涵盖的主题:
 LDAP 客户端配置
 自动挂载器元字符

使用 LDAP 服务器进行网络身份验证
在本课程中,到目前为止,我们已经介绍了通过每台计算机上的本地文件(例如 /etc/passwd )管理的本地用户账户。但是,在多个系统上将本地用户账户协调一致非常困难。

在本节中,我们将介绍如何将计算机设置为客户端,以使用现有 LDAP 目录服务提供的网络用户账户。这样, LDAP 目录就成为我们组织中所有网络用户和组的中心机构。
用户账户信息可以确定装户的特征和配置。身份验证方式用于确定尝试登录的人员是否应该获得对账户的使用权限。网络目录服务可以提供用户账户信息和身份验证方法。
LDAP 目录服务器可以用作分布式、集中式、网络用户管理服务。目录条目按树结构排列,可以在其中进行搜索。基础 DN (区分名称)是树的基础,用于搜索用户和组的目录条目。
LDAP 客户端配置的主要元素
1. 服务器的完全限定主机名
2. 基础 DN ,用于搜索用户定义
3. 认证机构(“ CA” )证书,用于签署 LDAP 服务器的 SSL 证书
在开始之前,您因该确保已安装 directory-client yum 软件包,其中包括软件包 sssd 、authconfig-gtk 和 oddjob-mkhomedir 。
“ 系统” -->“ 管理” -->” 身份验证”或 system-config-authentication 可用于修改“身份标识和身份验证”的配置。
4. 命令行下首先下载 CA 证书: ( 否则会出现如下图警告 )
wget http://instructor.example.com/pub/EXAMPLE-CA-CERT -P /etc/openlda/cacerts/
5. system-config-authentication 将自动启动 sssd 服务,该服务将查找并缓存客户端的 LDAP 用户信
息和身份验证凭据。如果 LDAP 服务器不可用,但是 sssd 正常运行,则系统或许能够通过sssd 缓存
对网络用户进行身份验证并获取相关信息。
使用 getent passwd username 验证正在使用的账户信息。无论用户是在 /etc/passwd 中定义的本
地用户,还是由 LDAP 服务托管的网络用户,都可以执行此操作。如果本地用户与网络用户之间有任何
重复,此命令将始终显示系统实际正使用的定义。默认情况下,本地用户定义覆盖网络用户定义。
注意: getent passwd 在默认情况下仅显示本地账户。如果您要显示所有可用账户(包括 LDAP 账户),则修改 /etc/sssd/sssd.conf 文件在 [domain/default] 部分添加如下行 :
enumerate = True
重启 sssd 服务 :
# service sssd restart
# getent passwd
.....
ldapuser1:*:1701:1701:LDAP Test User 1:/home/guests/ldapuser1:/bin/bash
ldapuser2:*:1702:1702:LDAP Test User 2:/home/guests/ldapuser2:/bin/bash
ldapuser3:*:1703:1703:LDAP Test User 3:/home/guests/ldapuser3:/bin/bash
.....
6. 网络挂载主目录
请记住,挂载网络共享需要主机名、共享名、挂载点和挂载选项这四种信息。
1. 使用 showmount -e nfsserver.domain 获取导出的路径,该路径与主机名组合即为共享名。
[root@demo ~]# showmount -e instructor.example.com
Export list for instructor.example.com:
/home/guests     192.168.0.0/255.255.255.0
/var/nfs    192.168.0.0/255.255.255.0
/kickstart     192.168.0.0/255.255.255.0
/var/ftp/pub     192.168.0.0/255.255.255.0
2. 使用 getent passwd username 获取所需主目录挂载点。
[root@demo ~]# getent passwd ldapuser1
ldapuser1:*:1701:1701:LDAP Test User 1:/home/guests/ldapuser1:/bin/bash
3. 对于主目录,我们很可能想要使用 rw 作为挂在选项。在 autofs 中配置间接映射与以下内容类似:
# cat /etc/auto.master
/home/guests    /etc/auto.guests
# cat /etc/auto.guests
ldapuser1 -rw instructor.example.com:/home/guests/ldapuser1
ldapuser2 -rw instructor.example.com:/home/guests/ldapuser2

每次创建新 LDAP 用户, /etc/auto.guests 都需要更新,以包含新添加的用户。但请注意行的“模式”。
我们想要支持使用任意用户名登录,因此可以将第一列替换为“星号( * )”,它是一个通配符,与登录进
程可能尝试 cd 到的任意子目录都匹配。然后,我们使用元字符“连号( & )”替换共享中的用户名,但保
留由通配符匹配的映射名:
# cat /etc/auto.master
/home/guests    /etc/auto.guests

# cat /etc/auto.guests
*    -rw    instructor.example.com:/home/guests/&

# service autofs reload