OpenLDAP 目录管理核心术语
OpenLDAP 目录管理中的 DN、DC、OU 是构建目录树的核心概念,它们共同定义了数据的组织结构和唯一标识方式。以下结合技术原理和实际应用进行详解:
一、核心术语详解
1. DN(Distinguished Name,专有名称)
定义:DN 是目录中每个条目的全局唯一标识符,相当于文件系统中的绝对路径。它由多个组件(如 DC、OU、CN)按层级顺序组成,从叶子节点到根节点排列。
结构:
- 示例:
cn=Alice,ou=Dev,dc=example,dc=com - 组成:
cn=Alice:叶子节点的 RDN(Relative DN)ou=Dev:父级组织单元dc=example,dc=com:根域名组件
- 特性:
- 顺序敏感:
ou=A,ou=B与ou=B,ou=A表示不同路径。 - 唯一性:DN 在整个目录中必须唯一,不可重复。
- 顺序敏感:
- 示例:
2. DC(Domain Component,域名组件)
定义:DC 表示域名的一部分,用于构建目录树的顶层结构(Base DN)。通常将完整域名拆分为多个 DC 组件(如
example.com→dc=example,dc=com)。作用:
- 定义命名空间:作为目录树的根节点,所有条目均归属其下。
- 组织逻辑:类似 DNS 域名的层级划分(如
dc=org,dc=openldap)。
示例:
- 公司域名
company.com→dc=company,dc=com
- 公司域名
3. OU(Organizational Unit,组织单元)
定义:OU 是目录树中的逻辑容器,用于对条目(如用户、组)进行分类管理,类似文件系统的文件夹。
作用:
- 部门分组:例如
ou=HR(人力资源)、ou=IT(技术部)。 - 权限隔离:通过 OU 划分管理边界(如不同部门管理员仅管理其 OU)。
- 部门分组:例如
特性:
- 可嵌套:支持多级 OU(如
ou=Engineers,ou=R&D,dc=example,dc=com)。 - 灵活性:可包含用户、设备、子 OU 等对象。
- 可嵌套:支持多级 OU(如
二、DN 的组成与解析
1. DN 的层级结构
DN 的书写顺序为 从具体到抽象(叶子→根):
cn=Alice,ou=Dev,dc=example,dc=com
↑ 用户 ↑ 部门 ↑ 公司域名
- RDN(Relative DN):DN 最左侧部分(如
cn=Alice),在同级 OU 下必须唯一。
2. 实际目录树示例
graph TD
A[dc=com] --> B[dc=example]
B --> C[ou=People]
B --> D[ou=Groups]
C --> E[cn=Alice]
D --> F[cn=Admins]
- 路径解析:
- Alice 的 DN:
cn=Alice,ou=People,dc=example,dc=com - Admins 组的 DN:
cn=Admins,ou=Groups,dc=example,dc=com
- Alice 的 DN:
⚙️ 三、实际应用场景
1. 用户管理
- 用户条目:
dn: uid=alice,ou=Engineers,dc=example,dc=com
objectClass: inetOrgPerson
cn: Alice Smith
sn: Smith
uid: alice
- 关键属性:
uid:登录 ID(RDN 的一部分)ou=Engineers:归属部门
- 关键属性:
2. 权限控制
通过 ACL 规则限制 OU 的访问权限:
access to dn.subtree="ou=Finance,dc=example,dc=com"
by group.exact="cn=FinanceAdmins,ou=Groups,dc=example,dc=com" write
by * none
- 含义:仅财务管理员可修改
ou=Finance下的数据。
3. 与 CN 的区别
- CN(Common Name):表示对象名称(如用户全名、组名),是 DN 的组成部分,但不直接定义层级。
- 示例:
cn=Admin Group,ou=Groups,dc=example,dc=com。
- 示例:
总结
DN:条目的全局唯一路径,核心定位依据。
DC:定义目录树的根结构(域名拆分)。
OU:实现数据的逻辑分组与权限隔离。
最佳实践:
- 命名规范:DC 使用公司域名,OU 按部门命名(如
ou=HR)。 - 避免过深嵌套:OU 层级不超过 3 级,避免查询性能下降。
- 命名规范:DC 使用公司域名,OU 按部门命名(如
通过合理组合 DN、DC、OU,可构建清晰高效的企业目录树,支撑统一认证、权限管理等核心场景。
OpenLDAP 目录管理核心术语的更多相关文章
- Linux文件与目录管理(一)
一.Linux文件与目录管理 1.Linux的目录结构是树状结构,最顶级的目录是根目录/(用"/"表示) 2.Linux目录结构图: /bin:bin是Binary的缩写,这个目录 ...
- 【转】第七章、Linux 文件与目录管理
原文网址:http://vbird.dic.ksu.edu.tw/linux_basic/0220filemanager.php 第七章.Linux 文件与目录管理 最近升级日期:2009/08/26 ...
- 鸟哥的linux私房菜 - 第5/6/7/9章(在线求助 man page、Linux档案权限与目录配置、Linux档案与目录管理、压缩与打包)
第五章.在线求助 man page X window与文本模式的切换 Ctrl+Alt+F1~F6:文字接口登入tty1~tty6终端机: Ctrl+Alt+F7:图形接口桌面. 注销当前用户:exi ...
- 2. Linux文件与目录管理
一.目录与路径 1. 相对路径与绝对路径 绝对路径:路径写法[一定由根目录 / 写起],如:/usr/share/doc 相对路径:路径写法[不由 / 写起], /usr/share/doc 要到 / ...
- Linux基础(10)AIO项目设计与POSIX文件操作和目录管理
实现fast-cp :拷贝文件到目标对象 Linux的七种文件类型 :https://blog.csdn.net/linkvivi/article/details/79834143 ls -al :h ...
- Linux文件系统简介一(磁盘分区、开机过程、目录结构、文件权限、文件扩展名、目录管理)
Linux:就是一组软件,一套操作系统=核心+系统呼叫接口层. 1.操作系统 操作系统 = 核心(内核) + 系统呼叫(接口) 操作系统其实也是一组程序,重点在于管理计算机的所有活动以及驱动系统中的所 ...
- Linux命令整理,用户管理,用户组管理,系统管理,目录管理常用命令
知识点梳理 Linux课堂笔记 学习目标 能够知道什么是Linux系统以及它的应用场景 能够独立完成安装VMware虚拟机和网络配置 能够独立完成安装CentOS以及远程终端SecureCRT 能够熟 ...
- 8.Linux的目录管理
3 Linux目录管理 3.1 Linux 文件与目录管理 3.1.1 目录常用命令 ls: 列出目录 cd: 切换目录 pwd: 显示目前的目录 mkdir:创建一个新的目录 rmdir:删除一个空 ...
- Linux---远程连接、命令行基础、文件及目录管理
远程连接管理Linux实践(centos) 连接小知识 IP地址:访问连接服务器,需要通过服务器的IP地址来实现,服务器的IP地址就相当于服务器的具体地址.一计算机都会有一个唯一的32位的IP地址,8 ...
- Linux档案与目录管理
Linux档案与目录管理1. 目录与路径1.1 相对路径与绝对路径1.2 目录的相关操作: cd, pwd, mkdir, rmdir cd [相对路径或绝对路径]cd ~ [用户]: 切换家目录cd ...
随机推荐
- 探索Rust:深入了解结构体和枚举的用途与高级功能
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- 定制Django的Tag和Filter(二)
配置 (1)最常见的放置自定义Tag和Filter的地方是在Django的app下.当一个app被添加到settings.py的INSTALLED_APPS 后,任何在它下面的合法位置将自动的可在te ...
- C#实现自己的MCP Client
市面上,有很多免费Client客户端. 虽然说,这些Client客户端可以满足我们大部分的需求,但是在实际企业业务场景中,免费的Client无法全部满足我们的需求. 下面我们用C# 实现MCP Cli ...
- Win32汇编学习笔记06.APIHook
Win32汇编学习笔记06.APIHook-C/C++基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net api hook 称为 api 钩子,也称为 内联apihook 我们程 ...
- 【2020.11.28提高组模拟】T1 染色(color) 题解
[2020.11.28提高组模拟]T1 染色(color) 题解 题意描述 给长度为n的数列染色,若\(i-j\)为质数那么\(i,j\)异色.求最小需要的颜色种类并构造出一组. \(n\le10^4 ...
- jenkins的搭建及问题处理
Jenkins搭建第一步 本文讲述的本人搭建Jenkins的流程及遇到的坑及处理方法 1.搭建 Linux操作系统为Centos Jenkins版本为24稳定版 操作命令: sudo wget -O ...
- 详解鸿蒙Next仓颉开发语言中的全屏模式
大家好,今天跟大家分享一下仓颉开发语言中的全屏模式. 和ArkTS一样,仓颉的新建项目默认是非全屏模式的,如果你的应用颜色比较丰富,就会发现屏幕上方和底部的留白,这是应用自动避让了屏幕上方摄像头区域和 ...
- vscode GDB远程调试安卓
如果是比较新的android ndk的版本,建议使用lldb进行调试,参考:vscode lldb远程调试 - OpenFDE - OpenFDE Docs,将lldbserver push到移动端, ...
- 1. 如何通过SSH连接到vector rob
#anki #vector #robot #digital-dream-labs ssh连接到vector机器人操作系统: 将机器人放到充电底座上,连接电源,机器人自动启动,成功后,双击背部按钮打开蓝 ...
- SQL Server 部分包含数据库的原理
原文链接:https://blog.csdn.net/zhoujunah/java/article/details/103513426 包含是针对数据库独立性而来的,非包含数据库(SQL Server ...