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
之后按照提示一步一步走,可以按照参考链接的第一条做。






配置好了如下图所示

执行查看是否正确输出
ldapsearch -x -b dc=nodomain

如果没有检查是否没有开始服务
/etc/init.d/slapd start

操作

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

添加

编写文件如下

//File:lpad_data.ldifdn: ou=People,dc=nodomain
objectClass:organizationalUnit
ou: Peopledn: ou=Groups,dc=nodomain
objectClass: organizationalUnit
ou: Groupsdn: cn=DEPARTMENT,ou=Groups,dc=nodomain
objectClass: posixGroup
cn: SUBGROUP
gidNumber: 5000dn: 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
输入密码之后,就可以看到成功添加了一条数据

查询

执行如下命令可以查询出当前域的所有信息吧好像
ldapsearch -x -b dc=nodomain

执行如下命令进行数据的查询
ldapsearch -x -b dc=nodomain ‘uid=USER’

执行如下命令可以获取指定的数据
ldapsearch -x -LLL -b dc=nodomain ‘uid=USER’ cn gidNumber uidNumber

删除数据

我总算会删除了,删了一下午,里面的参数吧,-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
可以看到已经查找不出来数据了,说明删除了

修改

在修改前先查看一下信息
ldapsearch -x -b dc=nodomain ‘uid=USER’

在此准备将这个人的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

千万不要这么使用: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已经做了修改

关于修改,可以查看参考链接里面的信息

编写

关于IDLF文件的编写,这是一个树结构,大致如下

一些关键字如下

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: Peopledn: ou=Groups,dc=nodomain
objectClass: organizationalUnit
ou: Groupsdn: cn=DEPARTMENT,ou=Groups,dc=nodomain
objectClass: posixGroup
gidNumber: 5000dn: 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: TomBlack@126.com
telephoneNumber: 15809281414
UserPassword: TomBlack
displayName: DISPLAYNAME
loginShell: /bin/bash
homeDirectory: USERDIRECTORY

之后执行
ldapadd -x -D cn=admin,dc=nodomain -w root -f ldap_test.ldif
可以看到成功添加新条目

查看一下
ldapsearch -x -b dc=nodomain ‘uid=TomBlack’
可以看到

也可以通过在后面添加参数,查看具体的数据值。
强烈建议直接复制指令,因为我自己瞎折腾写命令因为记错了,所以错了好久

参考链接

【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~

Ubuntu配置LDAP认证相关推荐

  1. 无线 配置ldap 认证服务器,在无线局域网控制器wlcs上使用ldap的web认证配置示例-cisco.pdf...

    在无线局域网控制器wlcs上使用ldap的web认证配置示例-cisco 在无线局域网控制器(WLCs)上使用LDAP的 Web认证配置示例 目录 简介 先决条件 要求 使用的组件 背景信息 规则 W ...

  2. linux samba 配置ldap认证,Samba集成Ldap认证

    Samba集成Ldap认证 1.基础安装 yum -y install samba-common samba samba-client smbldap-tools  openldap-clients  ...

  3. AWS托管AD + Yearning配置LDAP认证登录

    AWS托管AD配置 具体创建过程不再赘述, 这里使用我之前创建好的一个AD, 主要是记录下来AD的两个DNS地址, 可以从控制台中查看到 EC2实例配置 先使用Amazon Linux 2 AMI启动 ...

  4. linux samba 配置ldap认证,Samba通过Openldap统一认证

    Samba通过Openldap统一认证 发布时间:2020-07-07 05:13:49 来源:51CTO 阅读:25675 作者:linuxzkq 1.环境准备 1.1.实验环境 [root@mob ...

  5. Ubuntu中使用freeradius配置RADIUS,并在RADIUS中配置LDAP

    安装RADIUS Remote Authentication Dial In User Service,远程用户拨号认证系统由RFC2865,RFC2866定义,是目前应用最广泛的AAA协议.AAA是 ...

  6. Ubuntu中使用freeradius配置RADIUS,并在RADIUS中配置LDAP 并实现AP认证

    RADIUS介绍 RADIUS(Remote Authentication Dial-In User Server,远程认证拨号用户服务)是一种分布式的.C/S架构的信息交互协议,能包含网络不受未授权 ...

  7. Ubuntu下的源码浏览器Opengrok搭建 并集成LDAP认证登陆

    -前言 很多做android开发的小伙伴都知道,快速检索代码的利器opengrok,检索代码非常方便,本人之前多次搭建opengrok,只不过最近迫于代码安全性考虑,终于搞定opengrok+tomc ...

  8. Ubuntu 18.04 LDAP认证

    将ubuntu配置为通过ldap认证,使其成为ldap client,系统版本ubuntu 18.04. 一 软件安装 apt-get install ldap-utils libpam-ldap l ...

  9. oracle ldap 配置,Ubuntu安装OpenLDAP之配置LDAP

    Ubuntu配置OpenLDAP 上一篇博文中,我们成功的安装了OpenLDAP-2.4.4到系统中,这篇文章介绍如何基于上一篇文章配置一个自己的ldap服务器来使用.(上篇见 http://www. ...

最新文章

  1. C语言计算e1 1/1! 1/2!,c语言程序填空 下面程序是计算sum=1+(1+1/2)+(1+1/2+1/3)+…(1+1/2...
  2. sudo apt-get 和dpkg命令大全
  3. 【MATLAB统计分析与应用100例】案例018:matlab读取Excel数据,进行K均值聚类分析
  4. J-flash 烧写cc2538教程
  5. 第十八章 lamp架构
  6. 修改Tomcat窗口名称
  7. 螺钉装弹垫平垫机器人_一种批量组装螺钉、弹垫、平垫的工装及使用方法
  8. code review手记2
  9. DHCP技术原理详解
  10. 【原创】洛谷 LUOGU P3371 【模板】单源最短路径
  11. Spring的bean管理(xml方式)之Bean实例化的方式
  12. 安装java程序出错
  13. MS2561低功耗RS-485接口芯片,可替换MAX487兼容MAX348
  14. Excel对比重复项
  15. SECS协议的SML表示
  16. 使用百度翻译开发平台,英文翻译为中文
  17. 大数据工程师需要学习哪些技术?
  18. 关于求矩阵主对角线元素之和及副对角线元素之和的问题
  19. 思科《计算机网络》第一章测试答案
  20. 一点点对WebResource.axd的配置及使用[原创]

热门文章

  1. 【数据库课设】图书馆借阅系统
  2. 浅析PMO的发展规划
  3. 10年后端开发程序员详解数据库缓存方案到底有多少名堂。丨Linux服务器开发丨后端开发丨中间件丨web服务器丨数据库缓存
  4. 小爱触屏音响用php接口,入手解析小米小爱触屏音箱Pro 8(白色)X08A评测如何?怎么样呢?专家们分析评测...
  5. cfe刷机教程 斐讯k3_斐讯K3全版本刷机教程2019-不用降级开telnet拆机TTL
  6. 软件测试毕业生的简历怎么写,软件测试专业应届毕业生个人简历.doc
  7. vs2019中如何创建qt项目_一、用于VS2019的QT配置
  8. LeetCode1609. 奇偶树
  9. Codeforces 1609A
  10. 【无代码体验】鲸智搭模板《办公用品管理系统》试用分享