济南做网站的公司/免费企业网站管理系统
csdn你…怎么不自动保存了很崩溃啊啊啊啊,我记得发现没保存之后我又改了一遍然后保存了,怎么现在又没了啊啊啊啊,过了这么久我都不记得了啊啊啊啊啊
参考
在 Ubuntu 22.04|20.04|18.04 上安装 OpenLDAP 和 phpLDAPadmin
在 Ubuntu 22.04|20.04|18.04|16.04 上配置 LDAP 客户端
如何在 Ubuntu 22.04 上安装 OpenLDAP(转载)
服务器
安装前
设置您的系统主机名并将其添加到文件/etc/hosts。
sudo vim /etc/hosts
将 ldap.example.com 替换为您正确的主机名/有效域名。
192.168.18.50 ldap.example.com
安装
sudo apt-get update
sudo apt-get install slapd ldap-utils
密码:OpenLDAP
配置slapd
sudo dpkg-reconfigure slapd
# Omit OpenLDAP server configuration? NO
# DNS domain name: mint.com
# Organization name: ldap0
# Administrator password: 123456
# Confirm password: 123456
# Do you want the database to be removed when slapd is purged? YES
# Move old database? YES
slapcat
输出 SLAPD 数据库内容来确认安装是否成功。
编辑配置文件 /etc/ldap/ldap.conf,取消注释行 \BASE\ 和 \URI\ 并输入您的 OpenLDAP 服务器的域名。
sudo vim /etc/ldap/ldap.conf
重新启动 slapd服务来应用更改
sudo systemctl restart slapd
sudo systemctl status slapd
针对这个问题,参考:LDAP connection seems to keep failing
方法一:将/etc/ldap/ldap.conf 中的ldapi://
改为ldap://
原理:在 Ubuntu 系统中,LDAP 客户端配置通常位于 /etc/ldap/ldap.conf 文件中。ldapi:// 是用于本地 Unix 套接字的 LDAP URI,而 ldap:// 是用于 TCP/IP 网络连接的 LDAP URI。
对我没用,我本来就是ldap://
方法二:安装libnss-ldapd
sudo apt-get update
sudo apt install libnss-ldapd
原理:removes libnss-ldap and installs nscd and nslcd
然后再sudo systemctl status slapd,似乎成功了
服务端主机验证
ldapsearch是一个用于搜索和查询LDAP目录的工具。以下是一个使用ldapsearch进行查询验证的示例:
# ldapsearch -x -H ldap://服务器地址|hosts主机名|域名 -D "cn=管理员,dc=域名,dc=顶级域" -w 密码 -b "dc=域名,dc=顶级域" "(objectClass=\*)"
ldapsearch -H ldap://127.0.0.1 -x -D 'cn=admin,dc=mint,dc=com' -w '123456' -b 'dc=mint,dc=com' '(objectClass=*)'
或
ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:///
这里因为我之前搞过加组加用户什么的(但是记录全丢了),所以还有别的信息
开启日志
配置文件:/etc/ldap/slapd.d
如果你搜索OpenLDAP的安装指南,很不幸地告诉你,网上不管中文的英文的,90%都是错的,它们都还活在上个世纪,它们会告诉你要去修改一个叫做slapd.conf的文件,基本上看到这里,你就不用往下看了,这个文件早就被抛弃,新版的OpenLDAP里根本就没有这个文件!取而代之的是slapd.d的文件夹
( 我花了一个五一终于搞懂了OpenLDAP)
slapd.d的相关内容太少了…
通过修改cn=config的LDIF文件来设置日志级别。设置日志级别为256(这个日志级别看到了很多不同版本的数字,不知道有什么区别,先这样用着):
配置日志文件的存储位置。创建或编辑/etc/rsyslog.d/10-slapd.conf
文件,添加:
$template slapdtmpl,"[%$DAY%-%$MONTH%-%$YEAR% %timegenerated:12:19:date-rfc3339%] %app-name% %syslogseverity-text% %msg%\n"
local4.* /var/log/slapd.log;slapdtmpl
将OpenLDAP的日志存储到/var/log/slapd.log文件中
完成后重启rsyslog服务和slapd服务
sudo service rsyslog restart
sudo systemctl restart slapd
查看日志文件
可以使用cat命令:
sudo cat /var/log/slapd.log
或者使用tail命令实时查看日志:
sudo tail -f /var/log/slapd.log
我使用了tail,另外开了个终端进行ldapsearch,可以看到search后日志有增加内容
操作
之前做了但是丢失的:
添加用户和组的基本 DN
创建一个名为 basedn.ldif 的文件(我在/mint/ldap目录下创建),其中包含以下内容:
dn: ou=people,dc=example,dc=com
objectClass: organizationalUnit
ou: peopledn: ou=groups,dc=example,dc=com
objectClass: organizationalUnit
ou: groups
通过运行命令添加文件:
sudo ldapadd -x -D cn=admin,dc=mint,dc=com -W -f basedn.ldif
账户管理器
安装
sudo apt install ldap-account-manager
安装完成后,打开浏览器,访问服务器IP地址后跟URL路径/lam(即http://192.168.5.25/lam)。你应该得到LDAP 帐户管理员 (LAM) 的登录页面。
配置
通用设置
点击右上角lam配置
点编辑服务器配置文件
输入密码lam,点击确定
工具设置里设置主DN,登录方法选择固定列表(fixed list),设置admin用户,然后点击保存
账户类型
再次进入lam配置-编辑服务器配置文件,到“帐户类型”页面以设置 OpenLDAP 服务器的默认组。
在“用户”部分,将 LDAP 后缀输入为 ou=People,dc=localdomain,dc=com 。 在这个例子中,所有用户都应该在 People 上可用。
在“组”部分,输入 LDAP 后缀为 ou=Groups,dc=localdomain,dc=com 。在此示例中,所有组都应在基本组 Groups 中可用。
保存后回到登录页,用户变成了admin,输入密码123456登录
客户端
本来看很多人用phpLDAPadmin,安装之后出现无法使用的问题,查资料发现是php版本问题,绕不开
出自在 Ubuntu 22.04|20.04|18.04 上安装 OpenLDAP 和 phpLDAPadmin(不是有问题就别教我安装啊!)
所以决定听从建议安装LDAP客户管理器了,安装phpLDAPadmin的过程本来有记录的既然丢了就算了
安装
将 LDAP 服务器地址添加到 /etc/hosts 文件中。
sudo vim /etc/hosts
192.168.18.50 ldap.example.com
前面是服务器ip,后面域名
安装命令:
sudo apt -y install libnss-ldap libpam-ldap ldap-utils
设置 LDAP URI - 可以是 IP 地址或主机名
设置搜索库的专有名称
选择 LDAP 版本 3
为设为本地根数据库管理员选择是
LDAP 数据库是否需要登录?回答否
为 root 设置 LDAP 帐户,例如 cn=admin,cd=example,cn=com
设置 LDAP root 帐户密码:123456
配置
安装后,编辑 /etc/nsswitch.conf 并将 ldap 身份验证添加到 passwd 和 group 行。
sudo vim /etc/nsswitch.conf
修改文件/etc/pam.d/common-password。删除第 26 行的 use_authtok
在 Ubuntu 系统中,/etc/pam.d/common-password 文件是 PAM(Pluggable Authentication Modules)配置文件之一,用于定义密码认证的相关策略。use_authtok 是 PAM 模块中的一个选项,用于指定是否使用前一个模块提供的认证令牌(通常是密码)。
通过将以下行添加到文件 /etc/pam.d/common-session 的末尾,可以在首次登录时创建主目录
session optional pam_mkhomedir.so skel=/etc/skel umask=077
通过切换到 LDAP 上的用户帐户进行测试
sudo su - mouse
su: user mouse does not exist or the user entry does not contain all the required fields
提示用户不存在,使用命令看看用户在不在:
ldapsearch -x -H ldap://ldap.mint.com -D "cn=admin,dc=mint,dc=com" -W -b "dc=mint,dc=com" "(uid=mouse)"
在的啊
getent passwd mouse
没有返回结果说明系统无法解析该用户,试了一些常见方法还没弄好,先这样吧
终于搞完了,快照保存一下
相关文章:

Ubuntu 22.04 - OpenLDAP安装使用(服务器+LAM+客户端)
csdn你…怎么不自动保存了很崩溃啊啊啊啊,我记得发现没保存之后我又改了一遍然后保存了,怎么现在又没了啊啊啊啊,过了这么久我都不记得了啊啊啊啊啊 参考 在 Ubuntu 22.04|20.04|18.04 上安装 OpenLDAP 和 phpLDAPadmin 在 Ubuntu 22.04|20…...

Linux ARM64 将内核虚拟地址转化为物理地址
文章目录 前言一、通用方案1.1 kern_addr_valid1.2 __pa 二、ARM64架构2.1 AT S1E1R2.2 is_kernel_addr_vaild2.3 va2pa_helper 三、demo演示参考资料 前言 本文介绍一种通用的将内核虚拟地址转化为物理地址的方案以及一种适用于ARM64 将内核虚拟地址转化为物理地址的方案&…...

使用 Visual Studio Code (VS Code) 开发 Python 图形界面程序
安装Python、VS Code Documentation for Visual Studio Code Python Releases for Windows | Python.org 更新pip >python.exe -m pip install --upgrade pip Requirement already satisfied: pip in c:\users\xxx\appdata\local\programs\python\python312\lib\site-pa…...

图像处理篇---基本OpenMV图像处理
文章目录 前言1. 灰度化(Grayscale)2. 二值化(Thresholding)3. 掩膜(Mask)4. 腐蚀(Erosion)5. 膨胀(Dilation)6. 缩放(Scaling)7. 旋转…...

一文讲清springboot所有注解
Spring Boot 注释是提供有关 Spring 应用程序信息的元数据。 基于 Spring 构建,涵盖其所有功能, Spring Boot 因其生产就绪环境而迅速成为开发人员的最爱,它允许开发人员直接专注于逻辑,而无需配置和设置的麻烦。 Spring Boot 是一…...

pytest测试专题 - 1.1 运行pytest
<< 返回目录 1 pytest学习笔记 - 1.1 运行pytest 1.1 运行pyest 在命令行执行pytest --help usage: pytest [options] [file_or_dir] [file_or_dir] [...] ... ...1.1.1 pytest不携带参数 pytest不带参数时,会扫描当前目录下的所有目录、子目录中符合测试用…...

Java多线程——线程池的使用
线程饥饿死锁 在单线程的Executor中,如果任务A将任务B提交给同一个Executor,并且等待任务B的结果,就会引发死锁线程池中所有正在执行任务的线程由于等待其他仍处于工作队列中的任务而阻塞 执行时间较长的任务 执行时间较长的任务不仅会造成…...

NO.15十六届蓝桥杯备战|while循环|六道练习(C++)
while循环 while语法形式 while 语句的语法结构和 if 语句⾮常相似,但不同的是 while 是⽤来实现循环的, if 是⽆法实现循环的。 下⾯是 while 循环的语法形式: //形式1 while ( 表达式 )语句; //形式2 //如果循环体想包含更多的语句&a…...

DeepSeek 从入门到精通学习指南,2025清华大学《DeepSeek从入门到精通》正式发布104页pdf版超全解析
DeepSeek 是一款强大的 AI 搜索引擎,广泛应用于企业级数据检索和分析。无论您是初学者还是有经验的用户,掌握 DeepSeek 的使用都能为您的工作带来极大的便利。本文将从入门到精通,详细介绍如何学习和使用 DeepSeek。 链接: https://pan.baid…...

2025年SEO自动优化工具
随着2025年互联网的快速发展,越来越多的企业和个人意识到,拥有一个排名靠前的网站对于吸引客户、增加流量、提高转化率至关重要。而要想让自己的网站脱颖而出,获得更多曝光,最重要的一项工作就是进行SEO优化。传统的SEO优化方式通…...

KEPServerEX 的接口类型与连接方式的详细说明
目录 一、KEPServerEX 核心架构 二、KEPServerEX 支持的接口类型 三、KEPServerEX 支持的连接类型 1. 通用工业协议 2. 品牌专属协议 3. 行业专用协议 4. 数据库与文件接口 四、配置示例 1. 接口配置(以OPC UA为例) 2. 连接配置(以…...

AGI时代的认知重塑:人类文明的范式转移与思维革命
文章目录 引言:站在文明转型的临界点一、认知危机:当机器开始理解世界1.1 AGI的本质突破:从模式识别到世界建模1.2 人类认知的脆弱性暴露二、认知革命:重构思维的四个维度2.1 元认知升级:从直觉思维到二阶观察2.2 混合智能:人机认知回路的构建2.3 认知安全:防御机器思维…...

OmniManip:以目标为中心的交互基元作为空间约束实现通用机器人操作
25年1月来自北大、北大-智元实验室和智元机器人公司的论文“OmniManip: Towards General Robotic Manipulation via Object-Centric Interaction Primitives as Spatial Constraints”。 开发能够在非结构化环境中进行操作的通用机器人系统是一项重大挑战。虽然视觉-语言模型 …...

论文第二次阅读笔记
摘要学习 存在问题:目前流行的图神经网络仅通过欧几里得几何及其相关的向量空间操作来建模数据,存在局限性 我们通过提出一种数学上有根据的图卷积网络(GCN)的推广,将其扩展到常曲率空间(或其乘积空间),从而填补了这一空白。 一是引入一种统一的形式主义,可以在所有常…...

【Android开发AI实战】选择目标跟踪基于opencv实现——运动跟踪
文章目录 【Android 开发 AI 实战】选择目标跟踪基于 opencv 实现 —— 运动跟踪一、引言二、Android 开发与 AI 的融合趋势三、OpenCV 简介四、运动跟踪原理(一)光流法(二)卡尔曼滤波(三)粒子滤波 五、基于…...

系统漏洞扫描服务:安全风险识别与防护指南
系统安全的关键在于漏洞扫描服务,此服务能迅速发现潜在的安全风险。借助专业的扫描工具和技术,它确保系统稳定运作。以下将简要介绍这一服务的主要特点。 扫描原理 系统漏洞扫描服务依赖两种主要手段:一是通过漏洞数据库进行匹配࿰…...

2.Excel:滨海市重点中学的物理统考考试情况❗(15)
目录 NO12 1.数据透视表 2. 3.sum函数 4.sumifs客观/主观平均分 5.sumifs得分率 6.数字格式修改 NO3/4/5 sumifs某一组数据相加,某一范围,某一范围的具体点向下拖拉,锁定列;向左右,锁定行F4&#x…...

使用 React 16+Webpack 和 pdfjs-dist 或 react-pdf 实现 PDF 文件显示、定位和高亮
写在前面 在本文中,我们将探讨如何使用 React 16Webpack 和 pdfjs-dist 或 react-pdf 库来实现 PDF 文件的显示、定位和高亮功能。这些库提供了强大的工具和 API,使得在 Web 应用中处理 PDF 文件变得更加容易。 项目设置 首先,我们需要创建…...

驱动开发系列35 - Linux Graphics GEM Buffer Object 介绍
一:概述 在 Linux 内核中,DRM(Direct Rendering Manager)模块 是用于管理显示硬件和图形渲染的核心框架。它负责协调用户空间应用程序(例如 X Server、Wayland Compositors、Mesa 等)和 GPU 硬件之间的通信,是 Linux 图形子系统的重要组成部分。 GEM (Graphics Executio…...

Java常见的异常类有哪些?
对应异常: 空指针 → NullPointerException数据库 → SQLException数组越界 → IndexOutOfBoundsException文件丢失 → FileNotFoundExceptionIO问题 → IOException强制转 → ClassCastException方法找不到 → NoSuchMethodException数组类型错 → ArrayStoreExce…...

清华大学新闻与传播学院沈阳团队出品的《DeepSeek:从入门到精通》104页PDF
前言 本机运行DeepSeek R1大模型文章如下: Windows电脑本地部署运行DeepSeek R1大模型(基于Ollama和Chatbox)【保姆级万字教程】在Windows计算机部署DeepSeek大模型,给在实验室无外网的同事们用(基于Ollama和OpenWebUI…...

增量hdfs数据追平
1、假设客户只改了最近的分区。他不会去修改历史的分区表,如果大量改历史的分区表,那纯纯把hive当mysql用了。这样我们就只能找出变动的表,然后删除,重新迁移。 2、此处是确保他们不会大量改历史分区,只有少部分改&am…...

Linux高并发服务器开发 第十七天(管道缓存区查询大小 管道的优劣 命名管道mkfifo 建立释放映射区mmap/munmap 匿名映射 进程间的通信)
目录 1.pipe管道读写行为 1.1例题:实现父子进程 ls | wc -l 1.2兄弟进程 ls | wc -l 2.管道缓存区 2.1命令查询 2.2函数查询 3.pipe管道的优劣 4.命名管道 fifo 5.mmap 5.1文件进程间通信 5.2建立、释放映射区 5.3匿名映射 6.进程间通信 6.1父子进间通…...

C语言常见概念
目录 第一个C语言程序 main函数 写法: printf和库函数 printf()函数 库函数 关键字 字符和ASCII码表 字符串和\0 转义字符 语句 注释 注释的两种形式 第一个C语言程序 #include<stdio.h>//第一个c语言程序 int main() {printf("Hello World…...

AI代码生成器如何重塑前端开发的工作环境
近年来,人工智能(AI)技术迅猛发展,深刻地改变着各行各业的工作方式。在软件开发领域,AI写代码工具的出现更是掀起了一场革命,尤其对前端开发工程师的工作环境和协作方式产生了深远的影响。本文将深入探讨AI…...

设计模式-结构型-外观模式
在软件开发中,随着功能的不断迭代,系统会变得越来越复杂,模块之间的依赖关系也会越来越深。这种复杂性会导致代码难以理解、维护和扩展。而外观模式(Facade Pattern)正是为了解决这一问题而生的。 一、外观模式简介 …...

8.flask+websocket
http是短连接,无状态的。 websocket是长连接,有状态的。 flask中使用websocket from flask import Flask, request import asyncio import json import time import websockets from threading import Thread from urllib.parse import urlparse, pars…...

ARM Cortex-M3/M4 权威指南 笔记【二】架构
一、架构 1.1 架构简介 Cortex-M3/M4 处理器都基于 ARMv7-M 架构。最初的 ARMv7-M 架构是随着 Cortex-M3 处理器一同引入的,而在 Cortex-M4 发布时,架构中又额外增加了新的指令和特性,改进后的架构有时也被称为 ARMV7E-M。要了解 ARM7-M 和…...

HCIA项目实践--静态路由的拓展配置
7.7 静态路由的拓展配置 网络中的两个重要思想: (1) 实的不行来虚的; (2) 范围太大,划分范围。(分治) 7.7.1 负载均衡 (1)定义 负载均衡是一种网…...

STL中list的模拟实现
文章目录 1. 前言and框架2. 相对完整的框架3. 模拟实现接口1. 迭代器的引入2. 迭代器的区分list迭代器迭代器的构造list迭代器的实现模拟指针解引用前置和前置--后置和--迭代器!迭代器-> list的const迭代器迭代器模板迭代器是否需要析构,拷贝构造&…...