LDAP 命令记录

工作中用到了 LDAP,做一个简单记录。

概念性的东西不做阐述,只是记录常用命令,以便将来回顾。

想多做了解可以参考这个系列文章: https://blog.csdn.net/liumiaocn/category_8355958.html

搭建 LDAP 服务器

首先,快速搭建一个 openldap 服务,便于练习

参照 https://www.cnblogs.com/eoalfj/p/11837415.html

LDAP 操作

以下命令都需要在容器内执行

添加

添加用户

添加数据,把信息写入文件 ldif 文件,指定该文件进行添加操作。

文件 barbara.ldif

dn: cn=Barbara Jensen,dc=example,dc=org
objectClass: inetOrgPerson
cn: Barbara Jensen
cn: Babs Jensen
sn: Jensen
title: the world's most famous mythical manager
mail: bjensen@example.com
uid: bjensen

执行添加

简单解释一下:

-H 参数指定服务的IP端口,本例中,指向本地

-D 管理员账户

-w 密码

-f 指定文件

ldapadd -H ldap://localhost:389 -D "cn=admin,dc=example,dc=org" -w admin -f barbara.ldif

验证添加

查询,验证添加

ldapsearch -H ldap://localhost:389  -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin

验证组织

思路和添加用户一样,创建添加文件,指定文件进行添加操作

创建文件 orgunits.ldif

dn: ou=People,dc=example,dc=org
objectclass: top
objectclass: organizationalUnit
ou: People dn: ou=Servers,dc=example,dc=org
objectclass: top
objectclass: organizationalUnit
ou: Servers

执行添加

ldapadd -H ldap://localhost:389 -D "cn=admin,dc=example,dc=org" -w admin -f orgunits.ldif

验证添加

查询,验证组织已添加

ldapsearch -H ldap://localhost:389 -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin

查询

-b 参数,指定查询根节点

-D 执行命令的用户

-w 密码

最后可以附带查询规则

ldapsearch -H ldap://localhost:389 -b "dc=example,dc=org" -D "cn=admin,dc=example,dc=org" -w admin "ou=S*"

修改

修改属性

创建 modifybarbara.ldif 文件,指定修改哪个 DN,操作类型 modify 代表修改,修改字段及修改的值。

dn: cn=Barbara Jensen,dc=example,dc=org
changetype: modify
replace: title
title: one of the world's most famous mythical manager

执行修改

ldapmodify -H ldap://localhost:389 -D "cn=admin,dc=example,dc=org" -w admin -f modifybarbara.ldif

调整部门

文件 modifybarbara3.ldif 移动到 ou=People 中

dn: cn=Barbara Jensen,dc=example,dc=org
changetype: modrdn
newrdn: uid=bjensen
deleteoldrdn: 0
newsuperior: ou=people,dc=example,dc=org

修改

ldapmodify -a -H ldap://localhost:389 -D "cn=admin,dc=example,dc=org" -w admin -f modifybarbara3.ldif

验证结果

检查结果

ldapsearch -H ldap://localhost:389 -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin

修改uid

文件 modifybarbara4.ldif 修改 uid

dn: uid=bjensen,ou=people,dc=example,dc=org
changetype: modrdn
newrdn: uid=bjensenuid
deleteoldrdn: 0
newsuperior: ou=people,dc=example,dc=org

修改

ldapmodify -a -H ldap://localhost:389 -D "cn=admin,dc=example,dc=org" -w admin -f modifybarbara4.ldif

验证结果

检查结果,结果显示两个 uid,不符合直觉,但是用不到,暂不深究

ldapsearch -H ldap://localhost:389 -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin

删除

删除属性

文件 delete1.ldif 删除description 属性

dn: uid=bjensenuid,ou=people,dc=example,dc=org
changetype: modify
delete: description

修改

ldapmodify -a -H ldap://localhost:389 -D "cn=admin,dc=example,dc=org" -w admin -f delete1.ldif

验证结果

ldapsearch -H ldap://localhost:389 -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin

删除条目

删除条目 命令方式

ldapdelete -H ldap://localhost:389 -D "cn=admin,dc=example,dc=org" -w admin  "uid=bjensenuid,ou=People,dc=example,dc=org"

删除条目,文件方式 vi delete.ldif

dn: uid=bjensenuid,ou=people,dc=example,dc=org
changetype: delete

执行

ldapmodify -H ldap://localhost:390 -D "cn=admin,dc=example,dc=org" -w admin -f delete.ldif

为了后续测试,再次添加用户

再次添加 cn=Barbara Jensen,dc=example,dc=org

ldapadd -H ldap://localhost:389 -D "cn=admin,dc=example,dc=org" -w admin -f barbara.ldif

为用户修改密码

命令行修改密码

不指定密码,会直接生成新密码

ldappasswd -H ldap://localhost:389 -D "cn=admin,dc=example,dc=org" -w admin  "cn=Barbara Jensen,dc=example,dc=org"

验证密码生效

ldapsearch -H ldap://localhost:389 -b "cn=Barbara Jensen,dc=example,dc=org" -D "cn=Barbara Jensen,dc=example,dc=org" -w IFj4CipL

指定密码修改,用户自己操作,修改为 abc123

ldappasswd -H ldap://localhost:389 -D "cn=Barbara Jensen,dc=example,dc=org" -w IFj4CipL -s abc123

验证密码生效

ldapsearch -H ldap://localhost:389 -b "cn=Barbara Jensen,dc=example,dc=org" -D "cn=Barbara Jensen,dc=example,dc=org" -w abc123

文件方式修改密码

文件 pass1.ldif 修改密码, ldapmodify 方式修改密码

dn: cn=Barbara Jensen,dc=example,dc=org
changetype: modify
replace: userPassword
userPassword: babspw

修改

ldapmodify -a -H ldap://localhost:389 -D "cn=admin,dc=example,dc=org" -w admin -f pass1.ldif

验证密码生效

ldapsearch -H ldap://localhost:389 -b "cn=Barbara Jensen,dc=example,dc=org" -D "cn=Barbara Jensen,dc=example,dc=org" -w babspw

LDAP 使用记录的更多相关文章

  1. ldap配置记录

    记录一下最近研究ldap+nfs的情况 ldap这个东西上次研究nis的时候就有人说那是上个世纪的老东西了,不应该继续使用.虽然意识到如此但时间不够还是使用了nis,这次乘着重做就干脆切换到ldap, ...

  2. LDAP介绍

    摘自: http://www.blogjava.net/allen-zhe/archive/2007/03/19/104740.html LDAP介绍 原文:http://ldapman.org/ar ...

  3. 什么是LDAP?

    LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X.500标准的,但是简单多了并且可以根据需要定制.与X ...

  4. 初识ldap

    什么是LDAP? LDAP的英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X.500标准的, 但是简单多了并且可以根据需要定制.与 ...

  5. LDAP & Implentation

    LDAP: LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X.500标准的,但是简单多了并且可以根据需 ...

  6. : LDAP & Implementation

    LDAP LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X.500标准的,但是简单多了并且可以根据需要 ...

  7. APACHE + LDAP 的权限认证配置方法

    原文地址:http://www.chinaunix.net/jh/49/627646.html 一.前言 很多朋友希望利用 Apache 通过 LDAP 进行用户认证及权限管理.     通过多次试验 ...

  8. 【LDAP】LDAP介绍

    原文:http://ldapman.org/articles/intro_to_ldap.html原文作者:Michael Donnelly 什么是LDAP? LDAP的英文全称是Lightweigh ...

  9. LDAP安装

    一.介绍 LDAP 全称:Lightweight Directory Access Protocol,即“轻量级目录访问协议”. LDAP目录以树状的层次结构来存储数据.如果你对自顶向下的DNS树或U ...

随机推荐

  1. redis(八):Redis 哈希(Hash)

    Redis 哈希(Hash) Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象. Redis 中每个 hash 可以存储 232 ...

  2. Python之class面向对象(基础篇)

    概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学 ...

  3. BFC 生成 特性 解决的问题

    BFC( 块级格式化上下文 ) 块级格式化上下文,它是指一个独立的块级渲染区域, 只有 Block­level BOX 参与,该区域拥有一套 渲染规则来约束块级盒子的布局,且与区域外部无关. 如何生成 ...

  4. Babel:下一代Javascript语法编译器

    定义 Babel是一个Javascript的编译器,通过它你可以将一些新版本的ECMAScript语法转换成低版本的语法.以便能够在低版本的浏览器或者其它环境平稳运行. 截至目前笔者写这篇文章的时候, ...

  5. .net core 自带分布式事务的微服务开源框架JMS

    事务的统一性是微服务的一个重点问题,简洁有效的控制事务,更是程序员所需要的.JMS的诞生,就是为了更简单.更有效的控制事务. 先看一段调用微服务的代码: using (var ms = new JMS ...

  6. 为什么Python适合初学者,一般要学习多久

    为什么Python适合初学者?一般Python要学习多久?很多人都觉得,Python是一门很好学的语言,非常适合入门.但更多人都是不清楚具体原因的.那么,我们不如一起来看看Python为何更适合初学者 ...

  7. CCNA - Part12 - 路由协议 (1) - 静态路由,动态路由 RIP

    路由器 在之前关于路由器的介绍中,我们知道它是网络互联的核心设备,用于连接不同的网络,在网络之间转发 IP 数据报.对于路由器来说,路由表是其内部最为重要的构成组件.当路由器需要转发数据时,就会按照路 ...

  8. 关于git的一些简单命令

    git简介 1 Git是什么? Git is a free and open source distributed version control system designed to handle ...

  9. php实现导出数据分类合并单元格功能

    <?php $conn = mysql_connect("localhost","root","root"); $db = mysql ...

  10. LQB2013A03振兴中华

    最近状态出了点问题呜呜呜,可能是天有点热吧加上有一点点不太舒服,,,稳住啊! 明显一个递归(但是就是不会写) 递归:(一般这种找有多少个的题,返回值都是int) 首先找变化的东西当作参数.(本题是坐标 ...