如何配置OpenLDAP并执行LDAP管理任务

在CentOS 6.5上安装OpenLDAP并配置LDAP方式用户登录 阅读详情

提供:ZStack云计算

内容介绍

如果对于系统配置不够熟悉或者不知如何获取必要的关键信息,那么OpenLDAP系统的管理任务确实令人头痛。在本教程中,我们将探讨如何查询OpenLDAP服务器中的关键信息,以及如何对运行中的系统进行调整。

先决条件

大家首先应当拥有一套已经安装并配置完成的OpenLDAP系统,具体内容请参阅此文。另外,大家还需要掌握LDAP目录服务的基本术语,推荐参阅此篇教程以了解相关内容。

OpenLDAP在线配置

LDAP系统采用所谓DIrecotry Information Treesor分层结构实现数据存储管理,简称为DIT。自2.3版本开始,OpenLDAP服务器的实际配置就由一套特殊DIT负责,其条目通常被称为cn=config。

这套配置系统亦被称为OpenLDAP在线配置,或者简称OLC。与原有配置方法不同,这套方案会在服务器启动时读取配置文件,面向OLC的修改能够立即起效且无需对服务进行重启。

OLC系统采用标准LDAP方法验证并执行修改。正因为如此,针对LDAP的定期管理工作往往能够无缝化进行,因为其采用与操作DIT数据相同的知识、技能与工具。然而,对于刚刚接触LDAP的朋友,大家往往由于不了解如何使用LDAP工具完成配置而导致难于上手。

在本教程中,我们将探讨如何从零开始完成OpenLDAP各项基础管理任务,从而帮助大家掌握进一步学习的前提性知识。

访问Root DSE

首先来聊聊root DSE,这套结构负责容纳服务器上的全部DIT。我们将其作为基础条目,从而进一步管理服务器能够识别的各DIT。

DSE究竟是什么?

DSE的全称为“DSA特定条目”,其属于LDAP服务器中的管理或控制条目。DSA代表的则为“目录系统代理”,意为负责实现LDAP协议的目录服务器。

要查询root DSE,我们首先需要进行空白(null)搜索并将搜索范围限定为“base”,这意味着系统只会返回条目结果。一般来讲,我们可以借此缩小搜索深度,不过在操作root DSE时,这种限制就成了必需(如果选定其它范围,则无法返回结果)。

具体命令如下:

  • ldapsearch -H ldap:// -x -s base -b “” -LLL “+”

我们假定大家立足于LDAP服务器本身执行上述命令,且没有设置任何访问限制,那么结果应如下所示:

root DSE Output

dn:
structuralObjectClass: OpenLDAProotDSE
configContext: cn=config
namingContexts: dc=example,dc=com
supportedControl: 2.16.840.1.113730.3.4.18

. . .

supportedLDAPVersion: 3
supportedSASLMechanisms: GS2-IAKERB
supportedSASLMechanisms: GS2-KRB5
supportedSASLMechanisms: SCRAM-SHA-1
supportedSASLMechanisms: GSSAPI
supportedSASLMechanisms: DIGEST-MD5
supportedSASLMechanisms: NTLM
supportedSASLMechanisms: CRAM-MD5
entryDN:
subschemaSubentry: cn=Subschema

这里我们对输出结果进行分析。首先可以看到与LDAP服务器相关的重要元数据。

其中-H ldap://用于指定localhost上的一条未加密LDAP查询。-x不加任何验证信息则代表要求服务器接收未知连接。而-s base -b “”的作用是指定搜索范围并将搜索对象设置为空。我们利用-LLL去掉多余的输出内容。最后,“+”负责指定我们希望查看的部分默认隐藏的运行属性(我们将在这里找到需要的信息)。

找到目标服务器的DIT

出于教程内容的考虑,这里我们只强调LDAP服务器配置所需要的特定DIT。通过以上输出结果,可以看到namingContexts这一运行属性值。

如果我们只需要这部分信息,则可以使用以下命令进行更具针对性的查询:

  • ldapsearch -H ldap:// -x -s base -b “” -LLL “namingContexts”

在这里,我们还查询了另一项需要查看的值。服务器上的每条DIT都可通过namingContexts属性加以查看。这是一条操作性属性,通常为隐藏,但明确调用即可进行查看。

以上命令能够排除其它不必要的信息,因此输出结果如下:

namingContexts search

dn:
namingContexts: dc=example,dc=com

可以看到,此LDAP服务器只拥有一项(非管理)DIT,其作为dc=exmaple,dc=com的专有名称(简称DN)条目。如果该服务器还负责管理其它DIT,那么这里可能会返回多个值。

找到配置DIT

可用于配置OpenLDAP服务器的DIT并不会在搜索namingContexts时被返回。该配置DIT的root条目实际被存储在另一专有属性,即configContext当中。

要了解此配置DIT的基础DN,大家需要明确查询该属性:

  • ldapsearch -H ldap:// -x -s base -b “” -LLL “configContext”

返回结果如下:

configContext search

dn:
configContext: cn=config

此配置DIT的DN被称为cn=config。由于其可能恰好匹配大家的配置DIT,我们将在接下来的教程中继续使用。如果大家的配置DIT有所不同,请做出对应修改。

访问配置DIT

现在配置DIT的位置已经明确,接下来进行查询以了解其当前设置。

由于DIT可用于对LDAP系统设置进行变更,因此其设定了访问控制机制。其默认条件下只允许root或sudo用户进行访问。

具体命令如下:

  • sudo ldapsearch -H ldapi:// -Y EXTERNAL -b “cn=config” -LLL -Q

其中sudo负责声明权限,这里需要将之前ldapsearch命令中的-x替换为-Y EXTERNAL以指定我们需要使用的是SASL验证方法。另外,我们还需要将协议由ldap://变更至ldapi://以立足于Unix socket发送请求。如此一来,OpenLDAP就能够验证操作系统用户并评估其是否符合权限要求。接下来,使用cn=config条目作为搜索基础。

返回的结果为一长串设置列表。我们需要进行分页以便查看:

  • sudo ldapsearch -H ldapi:// -Y EXTERNAL -b “cn=config” -LLL -Q | less

可以看到其中包含大量信息。这条命令输出的是完整的配置树。为了更明确地了解信息的整理与存储层级,下面只输出各条目DN:

  • sudo ldapsearch -H ldapi:// -Y EXTERNAL -b “cn=config” -LLL -Q dn

此时的输出结果更具可管理性,因为其中显示了标题(即DN)而非完整内容:

cn=config entry DNs

dn: cn=config

dn: cn=module{0},cn=config

dn: cn=schema,cn=config

dn: cn={0}core,cn=schema,cn=config

dn: cn={1}cosine,cn=schema,cn=config

dn: cn={2}nis,cn=schema,cn=config

dn: cn={3}inetorgperson,cn=schema,cn=config

dn: olcBackend={0}hdb,cn=config

dn: olcDatabase={-1}frontend,cn=config

dn: olcDatabase={0}config,cn=config

dn: olcDatabase={1}hdb,cn=config

这些条目代表着LDAP系统中的不同配置区域。让我们首先来看各条目到底对应哪些区域:

顶级条目包含的是某些全局设置,其作用于系统整体(除非被限定在具体上下文当中)。大家可以使用以下命令查看其内容:

  • sudo ldapsearch -H ldapi:// -Y EXTERNAL -b “cn=config” -LLL -Q -s base

其中最常见的是各项全局验证设置、日志级别设置、指向进程PID文件位置的指针以及SASL验证信息。

此配置下的各条目则更多针对系统中的特定区域。让我们首先查看可能需要的各项条目。

找到管理条目

在cn=config DIT当中,大家能够找到系统上全部DIT的rootDN,而rootDN基本上就属于管理条目。我们还能够找到用于账户登录的password(通常经过散列处理)。

要找到每项DIT的rootDN,使用以下命令:

  • sudo ldapsearch -H ldapi:// -Y EXTERNAL -b “cn=config” “(olcRootDN=*)” olcSuffix olcRootDN olcRootPW -LLL -Q

输出结果如下所示:

rootDN Information

dn: olcDatabase={1}hdb,cn=config
olcSuffix: dc=example,dc=com
olcRootDN: cn=admin,dc=example,dc=com
olcRootPW: {SSHA}AOADkATWBqb0SJVbGhcIAYF+ePzQJmW+

如果大家的系统拥有多项DIT,则可将其汇总起来进行查看。在这里,我们发现dc=example,dc=com的DIT的admin条目为cn=admin,dc=example,dc=com。我们还能够查看到散列密码。

查看Schema信息

LDAP schemas负责定义适用于系统的objectClassess与attributes。Schema能够在运行时中添加到系统中以实现不同的对象类型与属性。不过,也有部分特定属性已经内置于系统当中。

查看内置Schema

我们可以在cn=schema,cn=config条目下查看内置schema,具体命令如下:

  • sudo ldapsearch -H ldapi:// -Y EXTERNAL -b “cn=schema,cn=config” -s base -LLL -Q | less

与其它schema不同,这些内置schema无需额外向系统中添加即可使用。

查看其它Schema

我们还可以通过传统LDIF方法添加其它schema,其将作为cn=schema条目的子条目生效。

其命名方式通常是在schema名称前加上大括号与数字,例如cn={0}core,cn=schema,cn=config。大括号加数字代表该schema被系统读取时的顺序。在添加时,数字一般由系统自动添加。

要查看系统中已载入的其它schema,使用以下命令:

  • sudo ldapsearch -H ldapi:// -Y EXTERNAL -b “cn=schema,cn=config” -s one -Q -LLL dn

输出结果将显示各子条目名称:

additional schemas

dn: cn={0}core,cn=schema,cn=config

dn: cn={1}cosine,cn=schema,cn=config

dn: cn={2}nis,cn=schema,cn=config

dn: cn={3}inetorgperson,cn=schema,cn=config

各schema及其序号的分配可能与以上结果有所区别。另外,大家也可以进一步查看感兴趣的schema内容。例如,如果我们希望查看cn={3}inetorgperson,则可使用以下命令:

  • sudo ldapsearch -H ldapi:// -Y EXTERNAL -b “cn={3}inetorgperson,cn=schema,cn=config” -s base -LLL -Q | less

如果大家希望输出全部其它schema,则:

  • sudo ldapsearch -H ldapi:// -Y EXTERNAL -b “cn=schema,cn=config” -s one -LLL -Q | less

如果要输出全部schema,包括内置schema,则:

  • sudo ldapsearch -H ldapi:// -Y EXTERNAL -b “cn=schema,cn=config” -LLL -Q | less

模块、后端与数据库设置

配置DIT当中还有其它一些值得关注的元素,包括模块与各类存储技术设置机制。

模块

模块用于扩展OpenLDAP系统的功能性。这些条目可用于指向并加载模块以应用其功能。实际配置则通过其它条目实现。

用于加载模块的条目皆以cn=module{#}开头,其中大括号中的数字负责对模块加载进行排序,同时对不同条目进行区分。

大家可以使用以下命令实现模块的动态加载:

  • sudo ldapsearch -H ldapi:// -Y EXTERNAL -b “cn=config” -LLL -Q “objectClass=olcModuleList”

运行后,可查看到当前系统中已经加载的模块:

loaded modules

dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb

本示例中只包含一个模块,用于帮助我们使用hdb后端模块。

后端

后端条目用于指定负责处理数据存储的存储技术。

使用以下命令查看系统中的活动后端:

  • sudo ldapsearch -H ldapi:// -Y EXTERNAL -b “cn=config” -LLL -Q “objectClass=olcBackendConfig”

运行结果如下:

OpenLDAP active backends

dn: olcBackend={0}hdb,cn=config
objectClass: olcBackendConfig
olcBackend: {0}hdb
数据库

这些存储系统的实际配置由各数据库条目分别实现。每项DIT都应拥有一个数据库条目。其属性将取决于各数据库使用的实际后端。

查看系统中的全部数据库条目:

  • sudo ldapsearch -H ldapi:// -Y EXTERNAL -b “cn=config” -LLL -Q “olcDatabase=*” dn

输出结果为各数据库的DN:

database entries

dn: olcDatabase={-1}frontend,cn=config

dn: olcDatabase={0}config,cn=config

dn: olcDatabase={1}hdb,cn=config

下面对其内容进行解释:

  • olcDatabase={-1}frontend,cn=config: 此条目用于定义特定“frontend”数据库的功能。这是一套pseudo-database,用于定义适用于全部其它数据库(除非特别指定)的全局设置。
  • olcDatabase={0}config,cn=config: 此条目用于定义我们目前正在使用的cn=config数据库设置。多数情况下,其主要负责访问控制设置与复制配置等。
  • olcDatabase={1}hdb,cn=config: 此条目定义设置特定类型的数据库(本示例中为hdb)。其一般负责定义访问控制、数据存储细节、缓存与缓冲、DIT的root条目以及管理细节。

大括号中的数字代表索引值。其一般由系统自动创建。大家需要根据条目的实际赋值对其进行替换以实现引用。

查看这些条目的具体内容:

  • sudo ldapsearch -H ldapi:// -Y EXTERNAL -b “entry_to_view” -LLL -Q -s base | less

将以上命令返回的实际条目DN填写至entry_to_view字段处。

输出条目的操作性属性(元数据)

到这里,我们还一直在跟cn=config DIT打交道。接下来,我们将接触其它普通DIT。

每个拥有操作性属性的条目都能够作为管理元数据实现操作。我们可以对任意DIT中的条目进行查看,了解其中的重要信息。

要输出某一条目的全部操作性属性,大家可以在条目之后指定“+”属性。例如,要输出dc=example,dc=com中一个条目的操作性属性,我们可以:

  • ldapsearch -H ldap:// -x -s base -b “dc=example,dc=com” -LLL “+”

其会输出全部操作性属性,具体如下:

[list operational attributes]
dn: dc=example,dc=com
structuralObjectClass: organization
entryUUID: cdc658a2-8c3c-1034-8645-e30b83a2e38d
creatorsName: cn=admin,dc=example,dc=com
createTimestamp: 20150511151904Z
entryCSN: 20150511151904.220840Z#000000#000#000000
modifiersName: cn=admin,dc=example,dc=com
modifyTimestamp: 20150511151904Z
entryDN: dc=example,dc=com
subschemaSubentry: cn=Subschema
hasSubordinates: TRUE

通过以上信息,我们可以了解是谁在什么时间创建或修改了某条目。

使用subschema

Subschema代表的是可用类及属性。其显示的信息与schema条目类似,但还包含其它附加信息。其可用于普通非配置DIT,因此无需root权限即可访问。

找到subschema

要找到某一条目的subschema,大家可以查询条目下的全部操作性属性,或者搜索用于定义该条目subschema的特定属性(subschemaSubentry):

  • ldapsearch -H ldap:// -x -s base -b “dc=example,dc=com” -LLL subschemaSubentry

以上命令会输出与当前条目相关联的subschema条目:

[list subchema entry]
dn: dc=chilidonuts,dc=tk
subschemaSubentry: cn=Subschema

同一树状结构下的每个条目往往共享同一subschema,因此大家通常不必针对每个条目进行重复搜索。

显示subschema

要查看subschema条目的内容,我们需要根据之前找到的范围基础进行查询。所有重要信息都被存储在操作性属性当中,因此我们需要再次使用“+”选择符。

命令为:

  • ldapsearch -H ldap:// -x -s base -b “<^>cn=subschema” -LLL “+” | less

其能够输出subschema条目下的全部内容。我们可以在此基础上通过过滤找到需要的信息。

要查看LDAP语法定义,则可进行过滤:

  • ldapsearch -H ldap:// -x -s base -b “cn=subschema” -LLL ldapSyntaxes | less

要查看搜索机制与条目间的匹配控制方式,则:

  • ldapsearch -H ldap:// -x -s base -b “cn=subschema” -LLL matchingRules | less

要查看哪些匹配规则可以使用,则:

  • ldapsearch -H ldap:// -x -s base -b “cn=subschema” -LLL matchingRuleUse | less

要查看可用属性类型定义,则:

  • ldapsearch -H ldap:// -x -s base -b “cn=subschema” -LLL attributeTypes | less

要查看objectClass定义,则:

  • ldapsearch -H ldap:// -x -s base -b “cn=subschema” -LLL objectClasses | less

总结

尽管OpenLDAP服务器的操作似乎难于上手,但了解到配置DIT的相关知识以及如何找到系统内的元数据后,接下来的工作就相对简单了。利用LDIF文件修改cn=config DIT能够立即影响运行中的系统。另外,通过DIT配置系统也使得我们能够利用各LDAP工具设置远程管理机制。如此一来,大家就可以将LDAP管理与服务器管理拆分开来以独立处理了。

本文来源自DigitalOcean Community。英文原文:How To Configure OpenLDAP and Perform Administrative LDAP Tasks By Justin Ellingwood

翻译:diradw

Linux下LDAP Server/Client配置 --OpenLDAP OpenLDAP 在Linux上的配置与使用 阅读详情

相关推荐

Centos 安装openLDAP、配置客户端 、安装管理工具LDAP Admin

centos 安装openLDAP

huonan_123的博客 2167

LDAP学习小结【仅原理和基础篇】

  此篇文章花费了好几个晚上,大部分是软件翻译的英文文档,加上自己的理解所写,希望学习者能尊重每个人的努力.   我有句话想送给每个看我文章的人:     慢就是快,快就是慢!!!   另外更希望更多人能从认真从原理学习,分享更多有质量的文章,而不是仅仅转载别人的文章.   以下仅介绍了OpenLDAP的基本原理和基本配置,至于更高级的配置,还需自行学习,因为有了以下基础,再去建楼,就会 ...

weixin_30847271的博客 1468

GitLab集成LDAP登录并解决OpenLDAP的memberOf问题

LDAP是Light weight Directory Access Protocol(轻量级目录访问协议)的缩写,其前身是更为古老的DAP协议。该文章的亮点(也是写这篇文章的主要目的)是解决了 OpenLDAP(我使用的版本号为2.4.*)加载memberof模块,并通过groupOfNames和memberOf实现分组认证的功能。

点滴成长 2万+

Chapter 4 - LDAP Schema

此文主要介绍LDAP目录数据库的Schema

qq_26407585的博客 1140

LDAP配置与安装

LDAP的原理知识参考:https://www.cnblogs.com/wilburxu/p/9174353.html。修改Apache的端口!url: http://服务器地址:端口/phpldapadmin/5.3. 修改{-1}frontend.ldif文件。5.3. 修改{-1}frontend.ldif文件。5.2. 修改{1}monitor.ldif文件。5.2. 修改{1}monitor.ldif文件。7、修改LDAP文件权限、端口(不强求)7、修改LDAP文件权限、端口(不强求)

mandarin_meng的博客 3562

OpenLDAP实战:OLC配置、ldapi管理与LDAP目录治理

LDAP(轻量级目录访问协议)是一种专为高效读取和层级查询设计的目录服务标准,其核心在于树状数据模型(DIT)、基于DN的定位机制以及声明式配置管理。理解LDAP协议原理是构建统一身份中枢的前提,而OpenLDAP作为最主流的开源实现,已全面转向OLC(On-Line Configuration)模式,将配置本身作为LDAP条目进行版本化、审计化和自动化管理。技术价值体现在零停机热更新、细粒度权限建模及跨系统身份同步能力;典型应用场景包括多系统账号治理、Kubernetes RBAC后端、医疗影像系统(如d

daxi1047的博客 440

ldap错误状态码

正常情况LDAP返回的错误信息一般是下面这个样子的: “The exception is [ LDAP: error code 49 - 80090308: LdapErr: DSID-0Cxxxxxx , comment: AcceptSecurityContext error, data xxx , vece ].” 或者是这个样子的: “errorMessage:80090308:ldaperr:DSID-0Cxxxxxx , comment: AcceptSecurityContext er

weixin_45397609的博客 1万+

Linux统一登录认证之 --- OpenLDAP服务部署

前言 OpenLDAP 是 LDAP 协议的一个开源实现。LDAP 服务器本质上是一个为只读访问而优化的非关系型数据库。它主要用做地址簿查询(如 email 客户端)或对各种服务访问做后台认证以及用户数据权限管控。(例如,访问 Samba 时,LDAP 可以起到域控制器的作用;或者 Linux 系统认证 时代替 /etc/passwd 的作用。) 本文采用联网方式安装, 未来会尝试内网安装包方式

三个诸葛亮的博客 1993

LDAP基础:6:使用ldapsearch进行数据查询

在前面的文章中,我们已经多次使用ldapsearch进行信息的查询,但都是一条命令查询出所有内容,这篇文章对于ldapsearch的常用方式进行进一步的解释和说明。

知行合一 止于至善 7万+

Windows环境下LDAP部署与OpenLDAP安装指南

LDAP(轻量目录访问协议)是企业级身份认证和资源管理的核心协议,采用树状目录信息结构(DIT),通过条目(Entry)、ObjectClass和Schema等核心要素实现高效数据组织。在Windows环境中部署LDAP需要解决服务兼容性、端口冲突和权限管理等独特问题,特别是与AD域控制器的协同工作。OpenLDAP作为主流实现方案,在Windows Server平台上表现出优异的性能,支持TLS1.3等现代加密标准。通过合理配置和优化,可满足金融等行业对高并发(≥2000QPS)和安全认证的需求。本文详细

cuili5839的博客 422

Ldap笔记

【1】ldap介绍 【2】centos搭建OpenLDAP 【3】LDAP的objectClass及Attribute 【4】Ubuntu下安装OpenLDAP图形管理工具 【5】OPENLDAP 访问控制 【6】LDAP常用命令 【7】自助修改或重置密码服务Self Service Password 【8】其他资料 【9】ldap数据迁移 【1】ldap介绍 LDAP入门 LDAP概念和原理介绍 Ldap中文网 OenLDAP 配置记录 LDAP的中文全称是:轻量级目录访问协议。 LDAP是一种通讯协议

shuangmu9768的博客 1万+

openldap + samba为openldap添加smb属性----群晖synology

为openldap添加smb属性使用背景安装smb,以及smbldap提示先运行samba提前配置/etc/samba/smb.con配置smbldap.conf并运行smb运行smbldap-config,可以省略使用SSSD进行网络用户身份验证 使用背景 群晖服务器使用ldap管理用户时发现windows无法通过smb协议访问的\192.168.1.1(服务器ip)进入群晖服务器。 参考文档:*https://ubuntu.com/server/docs/samba-openldap-backend

Aggy阿吉的博客 4085

LDAP与OpenLDAP配置与管理的深入探索

本文详细探讨了LDAP(轻量级目录访问协议)和OpenLDAP的客户端配置过程,包括对象类的定义、LDIF文件的创建和使用、以及如何使用ldapadd和ldapmodify命令管理LDAP条目。同时,文章也介绍了如何通过ldapsearch进行数据库查询、ldapdelete删除条目、以及使用ldappasswd更改用户密码。此外,还涵盖了PAM(可插拔认证模块)的配置,特别是在使用SSSD进行LDAP认证时的设置。

weixin_29155599的博客 439

LDAP入门宝典(上):协议、结构与OpenLDAP实战部署

LDAP入门宝典(上):协议、结构与OpenLDAP实战部署!

虽非技冠群英首,愿与同道共长歌; 大鹏一日同风起,扶摇直上九万里; 3104

数据采集卡架构与PCIe优化设计详解

数据采集卡(DAQ)作为工业自动化中的关键设备,其核心在于模数转换(ADC)和数字信号处理技术。现代系统普遍采用PCIe总线架构,通过DMA传输和时钟同步技术实现高速数据采集。在信号调理环节,可编程增益放大器(PGA)和抗混叠滤波器确保信号质量;而Σ-Δ型ADC则提供高达24位的分辨率。实际应用中,从电力监测到机床振动分析,数据采集卡需要结合具体场景优化配置。通过合理的PCB布局和EMI防护设计,可以有效提升系统在工业环境中的可靠性。

weixin_29168675的博客 913

【入门篇】第五章 第一次与 AI Agent 交互

本文介绍了OpenClaw中最基本的用户与AI Agent交互方式,剖析了Agent和Gateway两个核心组件的作用,通过简单示例展示了从用户请求到结果返回的完整执行流程,说明了最小交互过程对验证系统可用性的重要意义,为后续学习复杂任务执行机制奠定基础。

lanyv的博客 512

OpenLdap的安装与LDAP的管理工具Apache Directory Studio的使用

OpenLdap的安装及基本管理 (一)OpenLdap简介 OpenLDAP是轻型目录访问协议(Lightweight Directory Access Protocol,LDAP)的自由和开源的实现,在其OpenLDAP许可证下发行,并已经被包含在众多流行的Linux发行版中。 它主要包括下述4个部分: slapd - 独立LDAP守护服务 slurpd - 独立的LDAP更新复制守...

Asteria_Lu的博客 3216

平衡小车动力学建模

两轮自平衡小车由车体和双轮两部分组成,可以看成一个移动的倒立摆,分别对车轮和车体进行力学分析,建立动力学模型,最后,通过对两者的分析给出系统的状态空间表达式。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kjiPEUVJ-1679470559950)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20230322110521545.png)]

qq_23096319的博客 9057

LDAP--OpenLDAP

首先说下标题LDAP–OpenLDAP,他们并不是一个东西。 LDAP:Lightweight directory access protocol 轻量级目录访问协议。是美国密歇根大学推出的基于X.500标准的一种简化的目录访问协议,属于目录服务。它里边的信息是一树形结构在一个数据库中存储的,ldap也可以说是一种数据库,但是又不同于我们理解的数据库,它的功能没那么强大。 目录服务  &...

n_u_l_l_的博客 854

《联邦学习实战》杨强 读书笔记十四——构建公平的大数据交易市场

当数据具有资产属性之后,数据便可以直接或者间接地为公司、为社会创造价值和收益,并且可以作为一种特殊的商品在市场中进行交易。 与传统的商品交易相比,数据资产交易的市场前景更广阔,但同时也面临着很多的挑战,主要包括: 数据的质量、价格如何定义 在合法合规的前提下,数据的交易如何确保不会泄露用户的隐私 如何构建合理的激励机制来鼓励更多的参与方加入数据交易市场中 大数据交易 数据交易的定义 数据交易是指一种对数据进行买卖的行为,大数据交易由三方共同参与,分别为数据提供方、大数据交易平台和数据需求方:

IEEE802_11的博客 3435

西门子S7-1200的PID应用(恒温热水器)

物料清单:1200PLC一台,模拟量输入模块SM1231(PLC自带的输入通道不支持4-20mA电流输入)一个,PT100一个,温度变送器,热得快,固态继电器。 第一步,硬件接线; 第二步,新建1200工程,添加PLC和模拟量输入模块,修改模块的模拟量输入类型为4-20mA,模拟量模块的IO地址为96-103(8个字); 第三步,新建循环组织块OB30,循环时间选择默认点1...

weixin_30835649的博客 6551

【LDAP】centos搭建openldap

参考文章:https://cloud.tencent.com/developer/article/1026304 https://blog.youkuaiyun.com/weixin_41004350/article/details/89521170 操作过程中出现问题可查看这两篇文章做对比 准备 由于是首次搭建,需要完全参考别人的方法来尝试,所以安装的是centos7桌面版本,这样方便复制粘贴及使用目录结构查看文件 环境:VMware15.5 + CentOS...

芒果黑的博客 1125

【STK】手把手教你利用STK进行导弹和反导仿真02 - STK/MMT模块01 导弹任务分析工具概述

种工具:导弹设计工具(Missile Design Tool,MDT )、导弹飞行工具(Missile Flight Tool,截弹,或者用内置拦截弹编辑器创建的个性化的拦截弹, IFT 能够对 ―一对一 ‖动能拦截。导设置系统参数, 并对其有效性进行验证, 画性能图,保证该设计是可行的。(SAIC)公司联合开发研制,极大扩展了 STK 原有的导弹对象的功能,能够精确仿真。IFT 能够对拦截飞机、 导弹、卫星等目标进行仿真和分析。(2)推进系统参数,包括推力,比冲,秒流量,推力持续时间,喷嘴出口面积,

weixin_44184852的博客 1884

OpenLDAP

LDAP通过属性objectClass来控制哪一个属性必须出现或允许出现在一个条目中,它的值决定了该条目必须遵守的模式规则。可以理解为关系数据库的表结构。含义olcGlobal全局配置文件类型, 主要是cn=config.ldif 的配置项top顶层的对象组织,比如公司名称,顶层的对象重要, 一个目录节点,通常是group,或者部门这样的含义重要, 我们真正的用户节点类型,person类型, 叶子节点重要, 分组的group类型,标记一个group节点配置模块的对象。

zhangkangren的博客 1785

搞懂 SAPUI5 Fiori 应用的 OData 授权维护:从 IWSG、IWSV 到 S_SERVICE 的完整实践

本文探讨了SAP Fiori项目中常见的授权问题及其解决方案。文章指出,开发人员常误将OData服务访问问题归咎于前端代码或配置,而实际上多因授权默认值未正确带入角色所致。详细分析了IWSG(前端服务组元数据)和IWSV(后端业务服务)两个关键对象的作用机制,强调应通过PFCG角色的Authorization Default入口维护服务对象,而非直接修改S_SERVICE授权对象。文章还提供了前后端授权配置的具体操作步骤,并特别提醒需同时配置前端和后端授权,才能确保应用完整可用性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 214

Matlab之App Designer 如何进行三维图形绘制教程

基于Matlab中的App Designer设计可视化界面并进行数据导入及3D绘图,可以直观的在可视化界面上展示分析结果,方便用户进行图形的操作。本文采用案例讲解的方式,详细介绍了如何采用Matlab App Designer建立数据3D绘图的GUI可视化界面的方法和详细的过程步骤,并介绍了导入数据进行计算时需要注意的相关事项,同时提供了详细的代码,以便读者进行学习和操作。

m0_59012156的博客 2067
上一篇: 如何利用Ansible角色对基础设施环境进行抽象
下一篇: 了解LDAP协议、数据结构与条目组件
普通网友
博客等级 码龄10年 769粉丝 269原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值