使用 yum install 命令分别安装上面提到的三个软件包。
修改/etc/openldap/slapd.conf,主要修改项如下:
建立DB_CONFIG文件到/var/lib/ldap/目录下, 其实/etc/openldap/目录中存在DB_CONFIG.example,复制到/var/lib/ldap/目录下就可以,否则在启动ldap时会出现警告错误提示。
配置目标LDAP服务器的一些属性,以方便所有的客户端程序共享使用。配置项主要有:
启动命令:# service ldap start
设置开机启动(运行级别):ntsysv
测试LDAP服务器:# ldapsearch –x
安装和配置好后,启动服务,slapd 自动在“/var/lib/ldap/”目录下创建了一个BDB数据库,但此时数据库是空的,即没有任务目录信息(连根DN“dc=bt,dc=com”都不存在)。
服务器正常运作后,就可以录入信息了。目录信息的管理(录入)方法有以下几种:
根目录的属性一般是(可以把下面的代码保存为ldif文件,然后导入):
dn: dc=bt,dc=cn
objectClass: dcObject
objectClass: organization
o: Corporation
dc: bt
description: Bintree Corp.
nss_ldap 提供了一个PAM模块“pam_ldap.so”,用于为各应用系统提供统一的LDAP认证模块。pam_ldap 在Linux 中是一个很基础的认证模块。pam_ldap 的配置文件为“/etc/ldap.conf”,可以配置pam_ldap.so作为LDAP的客户端连接LDAP服务器的各个参数。请参考《pam_ldap 详细配置》。
关于各应用系统如何使用LDAP进行认证,请参考PAM的相关介绍。各应用系统的PAM配置文件统一存放在“/etc/pam.d”中。
自從 Sun 推出了 Sun Yellow Pages (就是現在在 Unix/Linux 常聽到的 Network Information Service,NIS) 之後,Unix/Linux 的帳號管理就有了完整的統一方案,在此,我在這裡介紹如何使用 LDAP 統一帳帳號密碼的管理。
LDAP 裡,只要引入 nis.schema 就可以使用和 Linux 登入相關的 attribute。
/etc/passwd、/etc/shadow 和 /etc/group
大家都知道,/etc/passwd 是存放個人的帳號資料,而 /etc/shadow 是存放著個人的密碼資訊,而 /etc/passwd 格式應該像下面這樣:
steven:x:500:500::/home/steven:/bin/bash
也就是:
id:password:uid:gid:full_name:Home Directory:Login shell
這樣的格式,然而,在 Linux login 時,對於 LDAP 也要引用相關的 atrribute 才可以正確對應登入,下表為 posix /etc/passwd 和 LDAP 的對應:
/etc/passwd | objectClass: posixAccount |
id | uid |
password | userPassword |
uid | uidNumber |
gid | gidNumber |
full_name | gecos |
Home Directory | homeDirectory |
Login shell | loginShell |
上表可以很清楚的看到,若是要讓設計 ldif 檔的話,最少需要引用 posixAccount 這個 objectClass,並且設定必要的 attribute。
介紹完了 /etc/passwd 之後,另一個很重要的檔案,也就是記錄整個 Linux 主機的 user password 的檔案就是 /etc/shadow 這個檔,那麼他的格式是:
steven:$1$xGQPf1Cs$Y/kQw5TmUXvWY/1z3QgNZ/:13001:0:99999:7:::
他們的意義依序為:
username:passwd:last:may:must:warn:expire:disable:reserved
好的,那麼和剛剛一樣,我來解釋一下要引用的 objectclass 和 attribute 對應:
/etc/shadow | objectClass: shadowAccount |
username | id |
password | userPassword |
last | shadowLastChange |
may | shadowMin |
must | shadowMax |
warn | shadowWarning |
expire | shadowExpire |
disable | shadowInactive |
reserved | shadowFlag |
上面也可以得知,在設計 ldif 時,除了要引用剛剛的 posixAccount,還有 shadowAccount 才行。
介紹完了兩個重要的 passwd 和 shadow 檔之後,再來就是群組檔 (/etc/group) 的問題啦!一樣的,也有對應的 attribute,但我還是先列出格式出來:
steven:x:500:
也就是:
group name:password:group id:other account
下面是 objectclass 和 attribute 的對應:
/etc/group | objectClass: posixGroup |
group name | cn |
password | userPassword |
group id | gidNumber |
other account | memberUid |