十年JAVA搬砖路——Linux搭建Ldap服务器。
1.安装命令
yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel
2.启动ldap
systemctl start slapd
systemctl enable slapd
3.修改密码
slappasswd
Aa123456
获得返回的密码加密密码串: {SSHA}DkSw0+43+u4PK7c7F1GtoubEWHnrz3bG
- 去slapd.d 目录 创建db.ldif 文件
cd /etc/openldap/slapd.d
vim db.ldif
文件内容:
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=ricman,dc=localhostdn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=ricman,dc=localhostdn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}KUYZ4irDCPN8seoOg1zNNVzh70jVr1c8
#各个命令的说明
{
第一条语句修改了olcSuffix属性,该属性表示LDAP目录的后缀(基础DN)。它被替换为"dc=ricman,dc=localhost"。
第二条语句修改了olcRootDN属性,该属性表示LDAP目录的根用户(管理员)的区别名称(DN)。它被替换为"cn=Manager,dc=ricman,dc=localhost"。
第三条语句添加了一个新的属性olcRootPW,该属性表示根用户的密码。密码以哈希值形式提供({SSHA}KUYZ4irDCPN8seoOg1zNNVzh70jVr1c8)。
}
5.运行ldapmodify 命令替换系统文件
ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif
6.进入目录 cn=config 创建 monitor.ldif 文件
/etc/openldap/slapd.d/cn=config
vim monitor.ldif
文件内容
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external, cn=auth" read by dn.base="cn=Manger,dc=ricman,dc=localhost" read by * none
7.运行 ldapmodify 使得monitor 文件生效
ldapmodify -Y EXTERNAL -H ldapi:/// -f monitor.ldif
- 创建ldap基础库 复制ldap原有配置,并赋予它所有权限
cp /usr/share/openldap-servers/DB_CONFIG.example
/var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/*
然后向数据库添加schemas,包括cosine、nis、inetorgperson,然后分别执行下列命令
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f/etc/openldap/schema/inetorgperson.ldif
9.创建 base.ldif 文件
vim base.ldif
文件内容:
dn: dc=ricman,dc=localhost
dc: ricman
objectClass: top
objectClass: domain
dn: cn=Manager ,dc=ricman,dc=localhost
objectClass: organizationalRole
cn: Manager
description: LDAP Manager
dn: ou=People,dc=ricman,dc=localhost
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=ricman,dc=localhost
objectClass: organizationalUnit
ou: Group
#语句说明
{
以下是上述语句的中文意思:
第一条语句创建了一个名为"dc=ricman,dc=localhost"的条目,表示一个域(domain)。该条目具有top和domain两个objectClass。
第二条语句创建了一个名为"cn=Manager,dc=ricman,dc=localhost"的条目,表示一个组织角色(organizationalRole)。该条目具有organizationalRole的objectClass,并且具有cn(名称)和description(描述)属性。
第三条语句创建了一个名为"ou=People,dc=ricman,dc=localhost"的条目,表示一个组织单位(organizationalUnit)。该条目具有organizationalUnit的objectClass,并且具有ou(组织单位名称)属性。
第四条语句创建了一个名为"ou=Group,dc=ricman,dc=localhost"的条目,表示一个组织单位(organizationalUnit)。该条目具有organizationalUnit的objectClass,并且具有ou(组织单位名称)属性。
LDIF语句的作用如下:
-
dn: dc=ricman,dc=localhost
dc: ricman
objectClass: top
objectClass: domain这条语句创建了一个域(domain)条目,其区别名称(DN)为"dc=ricman,dc=localhost"。该域具有属性"dc"设置为"ricman",并且具有"top"和"domain"两个对象类。
-
dn: cn=Manager,dc=ricman,dc=localhost
objectClass: organizationalRole
cn: Manager
description: LDAP Manager这条语句创建了一个组织角色(organizationalRole)条目,其区别名称为"cn=Manager,dc=ricman,dc=localhost"。该角色具有对象类"organizationalRole",并且具有属性"cn"设置为"Manager"和"description"设置为"LDAP Manager"。
-
dn: ou=People,dc=ricman,dc=localhost
objectClass: organizationalUnit
ou: People这条语句创建了一个组织单位(organizationalUnit)条目,其区别名称为"ou=People,dc=ricman,dc=localhost"。该单位具有对象类"organizationalUnit",并且具有属性"ou"设置为"People"。
-
dn: ou=Group,dc=ricman,dc=localhost
objectClass: organizationalUnit
ou: Group这条语句创建了另一个组织单位(organizationalUnit)条目,其区别名称为"ou=Group,dc=ricman,dc=localhost"。该单位具有对象类"organizationalUnit",并且具有属性"ou"设置为"Group"。
这些语句通常用于定义LDAP目录的结构和组织,包括域(domain)、管理角色、用户和组的组织单位。
}
- 运行 ldapadd 命令生效 base.ldif 文件
ldapadd -x -W -D "cn=Manager,dc=ricman,dc=localhost" -f base.ldif
需要输入密码,密码为一开始设置的Aa123456
11.Ldap Admin工具链接
依次点击start—connect—New connection,然后输入 Host,Base以及用户名与密码,如下图所示,然后test connection。

相关文章:
十年JAVA搬砖路——Linux搭建Ldap服务器。
1.安装命令 yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel2.启动ldap systemctl start slapd systemctl enable slapd3.修改密码 slappasswd Aa123456获得返回的密码加密密码串: {SSHA}DkSw0…...
论文 辅助笔记:t2vec train.py
1 train 1.1 加载training和validation数据 def train(args):logging.basicConfig(filenameos.path.join(args.data, "training.log"), levellogging.INFO)设置了日志的基本配置。将日志信息保存到名为 "training.log" 的文件中日志的级别被设置为 INFO&…...
同时标注分割、检测、多分类属性的工具
1、 https://blog.csdn.net/minstyrain/article/details/82385580/ 2、 https://zhuanlan.zhihu.com/p/656703406...
LeetCode75——Day24
文章目录 一、题目二、题解 一、题目 2390. Removing Stars From a String You are given a string s, which contains stars *. In one operation, you can: Choose a star in s. Remove the closest non-star character to its left, as well as remove the star itself.…...
B端企业形象设计的正确姿势,你学会了吗?
如今,企业形象设计在B端市场中变得越来越重要。它是企业与客户之间建立联系的桥梁,也是吸引目标客户的重要方式。为了帮助您打造一个独特而专业的企业形象设计,我将为您提供十个步骤。 步骤1:了解企业定位和目标 在设计B端企业形…...
我在Vscode学OpenCV 基本的加法运算
根据上一篇我们可知__图像的属性 链接:《我在Vscode学OpenCV 处理图像》 属性— API 形状 img.shape 图像大小 img.size 数据类型 img.dtype shape:如果是彩色图像,则返回包含行数、列数、通道数的数组;如果是二值图像或者灰度…...
数据结构与算法解析(C语言版)--线性表
本栏目致力于从0开始使用纯C语言将经典算法转换成能够直接上机运行的程序,以项目的形式详细描述数据存储结构、算法实现和程序运行过程。 参考书目如下: 《数据结构C语言版-严蔚敏》 《数据结构算法解析第2版-高一凡》 软件工具: dev-cpp 0…...
pthread 名字设置及线程标识符获取
pthread 名字设置及ID获取 pthread_setname_np 函数原型: int pthread_setname_np(pthread_t thread, const char *name);thread:要设置名称的线程标识符(pthread_t)。name:要设置的线程名称(以字符串形式…...
17、Flink 之Table API: Table API 支持的操作(1)
Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…...
Ubuntu:解决PyCharm中不能输入中文或者输入一个中文解决方法
1.问题: Ubuntu22.04中,在pycharm里打字输入中文,每次都是只能输入第一个中文,后面输入的都变成了英文字母。。。无论咋调输入法,都没用,反正除了第一个字其他的输进去都是英文,而且汉字下面还…...
Vue3.0 reactive与ref :VCA模式
简介 Vue3 最大的一个变动应该就是推出了 CompositionAPI,可以说它受ReactHook 启发而来;它我们编写逻辑更灵活,便于提取公共逻辑,代码的复用率得到了提高,也不用再使用 mixin 担心命名冲突的问题。 ref 与 reactive…...
项目实战 | 使用Linux宝塔面板搭建商城公众号小程序基础框架
项目实战 | 使用Linux宝塔面板搭建商城公众号&小程序基础框架 1. 小程序/公众号运行的必备条件2. 准备阿里云ECS主机3. 宝塔面板基本配置4. 通过宝塔面板安装相关服务5. 新建站点并进行初始配置6. 服务配置6.1. PHP配置6.2. 数据库配置6.3. Redis配置6.4. 消息队列Supervis…...
IDEA远程调试代码
IDEA->RUN->Edit Configurations 端口随便选一个,选择调试模块,然后用IDEA生成的命令调试 java -agentlib:jdwptransportdt_socket,servery,suspendn,address*:8081 -jar backend-1.18.11.jar &...
目标检测 图像处理 计算机视觉 工业视觉
目标检测 图像处理 计算机视觉 工业视觉 工业表盘自动识别(指针型和数值型)智能水尺识别电梯中电动车识别,人数统计缺陷检测(半导体,电子元器件等)没带头盔检测基于dlib的人脸识别抽烟检测和睡岗检测/驾驶疲…...
【1day】宏景OA get_org_tree.jsp接口SQL注入漏洞学习
注:该文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与作者无关。 目录...
设计模式-迭代子模式
迭代子模式是一种行为设计模式,它提供了一种访问和遍历聚合对象中各个元素的方法,而不需要暴露聚合对象的内部表示。迭代子模式将遍历聚合对象的责任交给了迭代子对象,从而实现了聚合对象和迭代子对象的解耦。 在Java中,迭…...
绿色通道 快速理赔,渤海财险用实干书写服务品牌
7月底,受台风“杜苏芮”影响,北京市连续强降雨,西部、西南部、南部遭遇特大暴雨,房山、门头沟、丰台等地陆续出现山洪暴发现象。 灾害无情人有情,为更好地保障人民群众生命财产安全,渤海财险北京分…...
微信小程序怎么制作?【小程序开发平台教学】
随着移动互联网的快速发展,微信小程序已经成为了人们日常生活中不可或缺的一部分。从购物、支付、出行到社交、娱乐、教育,小程序几乎涵盖了我们生活的方方面面。那么,对于有营销需求的企业商家来说,如何制作一个自己的微信小程序…...
HTML、CSS和JavaScript,实现换肤效果的原理
这篇涉及到HTML DOM的节点类型、节点层级关系、DOM对象的继承关系、操作DOM节点和HTML元素 还用到HTML5的本地存储技术。 换肤效果的原理:是在选择某种皮肤样式之后,通过JavaScript脚本来加载选中的样式,再通过localStorage存储。 先来回忆…...
2103. 环和杆
2103. 环和杆 难度: 简单 来源: 每日一题 2023.11.02 总计有 n 个环,环的颜色可以是红、绿、蓝中的一种。这些环分别穿在 10 根编号为 0 到 9 的杆上。 给你一个长度为 2n 的字符串 rings ,表示这 n 个环在杆上的分布。rings 中每两个字符形成一个…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
