Ubuntu配置LDAP认证

LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。
在这里我需要在服务器上配置好LDAP,我的环境还是Ubuntu。

安装

直接就能安装
apt-get install slapd ldap-utils migrationtools
然后执行
dpkg-reconfigure slapd
之后按照提示一步一步走,可以按照参考链接的第一条做。
Ubuntu配置LDAP认证_第1张图片
Ubuntu配置LDAP认证_第2张图片
Ubuntu配置LDAP认证_第3张图片
Ubuntu配置LDAP认证_第4张图片
Ubuntu配置LDAP认证_第5张图片
Ubuntu配置LDAP认证_第6张图片
配置好了如下图所示
Ubuntu配置LDAP认证_第7张图片
执行查看是否正确输出
ldapsearch -x -b dc=nodomain
Ubuntu配置LDAP认证_第8张图片
如果没有检查是否没有开始服务
/etc/init.d/slapd start

操作

然后就可以进行相关操作了

添加

编写文件如下

//File:lpad_data.ldif

dn: ou=People,dc=nodomain
objectClass:organizationalUnit
ou: People

dn: ou=Groups,dc=nodomain
objectClass: organizationalUnit
ou: Groups

dn: cn=DEPARTMENT,ou=Groups,dc=nodomain
objectClass: posixGroup
cn: SUBGROUP
gidNumber: 5000

dn: uid=USER,ou=People,dc=nodomain
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: USER
sn: LASTNAME
givenName: FIRSTNAME
cn: FULLNAME
displayName: DISPLAYNAME
uidNumber: 10000
gidNumber: 5000
userPassword: USER
gecos: FULLNAME
loginShell: /bin/bash
homeDirectory: USERDIRECTORY

ldapadd -x -D cn=admin,dc=nodomain -W -f ldap_data.ldif
输入密码之后,就可以看到成功添加了一条数据
Ubuntu配置LDAP认证_第9张图片

查询

执行如下命令可以查询出当前域的所有信息吧好像
ldapsearch -x -b dc=nodomain
Ubuntu配置LDAP认证_第10张图片
执行如下命令进行数据的查询
ldapsearch -x -b dc=nodomain ‘uid=USER’
Ubuntu配置LDAP认证_第11张图片
执行如下命令可以获取指定的数据
ldapsearch -x -LLL -b dc=nodomain ‘uid=USER’ cn gidNumber uidNumber
Ubuntu配置LDAP认证_第12张图片

删除数据

我总算会删除了,删了一下午,里面的参数吧,-w后面接的是之前设好的密码,也可以不写,然后会提示输入密码的,这里’uid=USER,ou=People,dc=nodomain’的内容是上面的.ldif文件的第一行吧,这样的,必须得一样
ldapdelete -x -D “cn=admin,dc=nodomain” -w root ‘uid=USER,ou=People,dc=nodomain’
如果成功了应该不会有回显的,不成功的话,会提示报错,比如
ldap_bind: Invalid credentials (49)
这个问题有可能是密码错了,检查一下-w后面接的参数对不对。
之后在此查询一下
ldapsearch -x -b “dc=nodomain” -D “cn=admin.dc=nodomain” ‘uid=USER’ -w root
可以看到已经查找不出来数据了,说明删除了
Ubuntu配置LDAP认证_第13张图片

修改

在修改前先查看一下信息
ldapsearch -x -b dc=nodomain ‘uid=USER’
Ubuntu配置LDAP认证_第14张图片
在此准备将这个人的sn姓修改一下,修改同样需要一个LDIF文件,可以根据需求做修改

//File:ldap_modify.ldif
dn: uid=USER,ou=People,dc=nodomain
changetype: modify
replace: sn
sn: LASTNAME_Modified

执行
ldapmodify -a -D cn=admin,dc=nodomain -w root -f ldap_modify.ldif
image-21
千万不要这么使用:ldapmodify -a -D “uid=USER,ou=People,dc=nodomain” -w root -f ldap_modify.ldif,否则会一直报错ldap_bind: Invalid credentials (49)
执行ldapsearch -x -b dc=nodomain ‘uid=USER’
再次查看信息,通过对比可以看出sn已经做了修改
Ubuntu配置LDAP认证_第15张图片
关于修改,可以查看参考链接里面的信息

编写

关于IDLF文件的编写,这是一个树结构,大致如下
Ubuntu配置LDAP认证_第16张图片
一些关键字如下
Ubuntu配置LDAP认证_第17张图片

Shell

在此可以先了解一下shell脚本,因为ldap的命令又长又难记,写一个脚本会方便很多的。
它是一个脚本,并不能作为正式的编程语言。因为是跑在linux的shell中,所以叫shell脚本。说白了,shell脚本就是一些命令的集合。举个例子,我想实现这样的操作:1)进入到/tmp/目录;2)列出当前目录中所有的文件名;3)把所有当前的文件拷贝到/root/目录下;4)删除当前目录下所有的文件。简单的4步在shell窗口中需要你敲4次命令,按4次回车。这样是不是很麻烦?当然这4步操作非常简单,如果是更加复杂的命令设置需要几十次操作呢?那样的话一次一次敲键盘会很麻烦。所以不妨把所有的操作都记录到一个文档中,然后去调用文档中的命令,这样一步操作就可以完成。其实这个文档呢就是shell脚本了,只是这个shell脚本有它特殊的格式。
Shell脚本通常都是以.sh 为后缀名的,这个并不是说不带.sh这个脚本就不能执行,只是大家的一个习惯而已。所以,以后你发现了.sh为后缀的文件那么它一定会是一个shell脚本了。test.sh中第一行一定是 “#! /bin/bash” 它代表的意思是,该文件使用的是bash语法。如果不设置该行,那么你的shell脚本就不能被执行,’#’表示注释。
运行的话直接sh xx.sh即可,也可以通过./ss.sh运行,但是好像需要什么权限。
下面是我写的一个在这里能用得到的一个脚本,他的功能就是执行这四条语句,删除域中的信息。

#! /bin/bash
date
ldapdelete -x -D "cn=admin,dc=nodomain" -w root 'ou=People,dc=nodomain'
ldapdelete -x -D "cn=admin,dc=nodomain" -w root 'uid=TomBlack,ou=People,dc=nodomain'
ldapdelete -x -D "cn=admin,dc=nodomain" -w root 'cn=DEPARTMENT,ou=GROUPS,dc=nodomain'
ldapdelete -x -D "cn=admin,dc=nodomain" -w root 'ou=GROUPS,dc=nodomain'

IDLF

编写测试ldif文件,具体怎么写可以百度一下或者在参考链接里面找找有没有能用的

//File:ldap_test.ldif
dn: ou=People,dc=nodomain
objectClass: organizationalUnit
ou: People

dn: ou=Groups,dc=nodomain
objectClass: organizationalUnit
ou: Groups

dn: cn=DEPARTMENT,ou=Groups,dc=nodomain
objectClass: posixGroup
gidNumber: 5000

dn: uid=TomBlack,ou=People,dc=nodomain
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: Tom Black
uid: TomBlack
sn: Black
givenName: Tom
uidNumber: 10000
gidNUmber: 5000
mail: [email protected]
telephoneNumber: 15809281414
UserPassword: TomBlack
displayName: DISPLAYNAME
loginShell: /bin/bash
homeDirectory: USERDIRECTORY

之后执行
ldapadd -x -D cn=admin,dc=nodomain -w root -f ldap_test.ldif
可以看到成功添加新条目
Ubuntu配置LDAP认证_第18张图片
查看一下
ldapsearch -x -b dc=nodomain ‘uid=TomBlack’
可以看到
Ubuntu配置LDAP认证_第19张图片
也可以通过在后面添加参数,查看具体的数据值。
强烈建议直接复制指令,因为我自己瞎折腾写命令因为记错了,所以错了好久

参考链接

【ubuntu - ldap安装配置】 – Rock.Jiang
【LDAP基础:7:使用ldapmodify和ldapdelete进行修改或删除】 – liumiaocn
【LDAP基础:6:使用ldapsearch进行数据查询】 – liumiaocn
【LDAP基础:5:使用ldapadd进行数据增加】 – liumiaocn
【LDAP概念和原理介绍】 – WilburXu
【Ldap ldif 文件 样例】 – iteye_7726
【使用ldapmodify修改条目】 – gogourl

OK,THANKS FOR READING.BYE BYE~

你可能感兴趣的:(Linux)