http://www.cnblogs.com/xwdreamer/p/3469951.html
https://www.digitalocean.com/community/tutorials/how-to-install-and-co...
https://www.digitalocean.com/community/tutorials/how-to-authenticate-c...
LDAP (Lightweight Directory Access Protocol) 是一个集中用户管理系统。试想,当企业中搭建了多个服务比如redmine和gitlab,每个都需要重新开一个账号是非常麻烦的,也不利于管理。LDAP为用户管理提供了统一的接口,它的后端相当于一个数据库,当是以目录树和文件的形式存放的,这样它不需依赖任何数据库。
server
sudo apt-get install slapd ldap-utils
这一步装好之后会让你填写一些信息,然而是不完全的,你需要reconfigure它
sudo dpkg-reconfigure slapd
你将会填入以下一系列信息
- Omit OpenLDAP server configuration? No
- DNS domain name?
- 这将会创建基本的目录树结构
- 理论上是可以随便填的,如果你有域名可以用域名
- 这里使用 chenjr.cc
- Organization name? 也是随便填,这里使用 zju
- Administrator password?
- Database backend to use? HDB
- Remove the database when slapd is purged? No
- Move old database? Yes
- Allow LDAPv2 protocol? No (现在基本都用v3版本了)
到这里就安装好了,接下来可以验证一下
ldapsearch -x -LLL -H ldap:/// -b dc=chenjr,dc=cc dn
输出应该有两个,一个是根目录,一个是reconfigure过程中创建的admin
dn: dc=chenjr,dc=cc
dn: cn=admin,dc=chenjr,dc=cc
由于LDAP命令行工具的语法太复杂,使用客户端软件查看管理LDAP服务器是不错的选择。digitalocean的教程里用的是PHPldapadmin,但还要装php太麻烦。我推荐一个LDAPAdmin,挺老的软件但还挺好用。用客户端就能进行用户管理了。
client
client的作用是让你的LDAP服务器上存在的用户帐号可以像一个真正的linux用户登录到服务器。但这也需要配置一下。
sudo apt-get install libpam-ldap nscd
安装后仍然要填写一些信息
- LDAP server Uniform Resource Identifier
- 因为我用的同一台机器,所以我填的是 ldap://127.0.0.1:389,端口号选填
- 特别注意把它默认的ldapi:///换成ldap://
- Distinguished name of the search base
- 就是你目录树的根,比如我的是 dc=chenjr,dc=cc
- LDAP version to use: 3
- Make local root Database admin: Yes
- Does the LDAP database require login? No
- LDAP account for root:
- 这个是装LDAP服务器时的创建的那个admin账号
- 我这里是 cn=admin,dc=chenjr,dc=cc
- LDAP root account password
还需要编辑一些文件,首先是/etc/nsswitch.conf
,它使得我们在linux下改变用户密码等属性的时候会反映到LDAP中。在以下三行中的compat前面都加上ldap。
passwd: ldap compat
group: ldap compat
shadow: ldap compat
然后需要更改PAM的配置,编辑/etc/pam.d/common-session
,在末尾加上一行,这使得用户第一次登录的时候创建主目录
session required pam_mkhomedir.so skel=/etc/skel umask=0022
然后,编辑/etc/pam.d/common-password
,将以下这行中的use_authtok删掉,这是避免使用passwd命令时报错而无法更改密码
password [success=1 user_unknown=ignore default=die] pam_ldap.so use_authtok try_first_pass
然后重启nscd服务
sudo /etc/init.d/nscd restart
大功告成!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。