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=Bou=B,ou=A 表示不同路径。
      • ​唯一性​​:DN 在整个目录中必须唯一,不可重复。

​2. DC(Domain Component,域名组件)​

  • ​定义​​:DC 表示域名的一部分,用于构建目录树的顶层结构(Base DN)。通常将完整域名拆分为多个 DC 组件(如 example.comdc=example,dc=com)。

  • ​作用​​:

    • ​定义命名空间​​:作为目录树的根节点,所有条目均归属其下。
    • ​组织逻辑​​:类似 DNS 域名的层级划分(如 dc=org,dc=openldap)。
  • ​示例​​:

    • 公司域名 company.comdc=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 等对象。

​二、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

⚙️ ​​三、实际应用场景​

​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 级,避免查询性能下降。

通过合理组合 DN、DC、OU,可构建清晰高效的企业目录树,支撑统一认证、权限管理等核心场景。

OpenLDAP 目录管理核心术语的更多相关文章

  1. Linux文件与目录管理(一)

    一.Linux文件与目录管理 1.Linux的目录结构是树状结构,最顶级的目录是根目录/(用"/"表示) 2.Linux目录结构图: /bin:bin是Binary的缩写,这个目录 ...

  2. 【转】第七章、Linux 文件与目录管理

    原文网址:http://vbird.dic.ksu.edu.tw/linux_basic/0220filemanager.php 第七章.Linux 文件与目录管理 最近升级日期:2009/08/26 ...

  3. 鸟哥的linux私房菜 - 第5/6/7/9章(在线求助 man page、Linux档案权限与目录配置、Linux档案与目录管理、压缩与打包)

    第五章.在线求助 man page X window与文本模式的切换 Ctrl+Alt+F1~F6:文字接口登入tty1~tty6终端机: Ctrl+Alt+F7:图形接口桌面. 注销当前用户:exi ...

  4. 2. Linux文件与目录管理

    一.目录与路径 1. 相对路径与绝对路径 绝对路径:路径写法[一定由根目录 / 写起],如:/usr/share/doc 相对路径:路径写法[不由 / 写起], /usr/share/doc 要到 / ...

  5. Linux基础(10)AIO项目设计与POSIX文件操作和目录管理

    实现fast-cp :拷贝文件到目标对象 Linux的七种文件类型 :https://blog.csdn.net/linkvivi/article/details/79834143 ls -al :h ...

  6. Linux文件系统简介一(磁盘分区、开机过程、目录结构、文件权限、文件扩展名、目录管理)

    Linux:就是一组软件,一套操作系统=核心+系统呼叫接口层. 1.操作系统 操作系统 = 核心(内核) + 系统呼叫(接口) 操作系统其实也是一组程序,重点在于管理计算机的所有活动以及驱动系统中的所 ...

  7. Linux命令整理,用户管理,用户组管理,系统管理,目录管理常用命令

    知识点梳理 Linux课堂笔记 学习目标 能够知道什么是Linux系统以及它的应用场景 能够独立完成安装VMware虚拟机和网络配置 能够独立完成安装CentOS以及远程终端SecureCRT 能够熟 ...

  8. 8.Linux的目录管理

    3 Linux目录管理 3.1 Linux 文件与目录管理 3.1.1 目录常用命令 ls: 列出目录 cd: 切换目录 pwd: 显示目前的目录 mkdir:创建一个新的目录 rmdir:删除一个空 ...

  9. Linux---远程连接、命令行基础、文件及目录管理

    远程连接管理Linux实践(centos) 连接小知识 IP地址:访问连接服务器,需要通过服务器的IP地址来实现,服务器的IP地址就相当于服务器的具体地址.一计算机都会有一个唯一的32位的IP地址,8 ...

  10. Linux档案与目录管理

    Linux档案与目录管理1. 目录与路径1.1 相对路径与绝对路径1.2 目录的相关操作: cd, pwd, mkdir, rmdir cd [相对路径或绝对路径]cd ~ [用户]: 切换家目录cd ...

随机推荐

  1. 探索Rust:深入了解结构体和枚举的用途与高级功能

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  2. 定制Django的Tag和Filter(二)

    配置 (1)最常见的放置自定义Tag和Filter的地方是在Django的app下.当一个app被添加到settings.py的INSTALLED_APPS 后,任何在它下面的合法位置将自动的可在te ...

  3. C#实现自己的MCP Client

    市面上,有很多免费Client客户端. 虽然说,这些Client客户端可以满足我们大部分的需求,但是在实际企业业务场景中,免费的Client无法全部满足我们的需求. 下面我们用C# 实现MCP Cli ...

  4. Win32汇编学习笔记06.APIHook

    Win32汇编学习笔记06.APIHook-C/C++基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net api hook 称为 api 钩子,也称为 内联apihook 我们程 ...

  5. 【2020.11.28提高组模拟】T1 染色(color) 题解

    [2020.11.28提高组模拟]T1 染色(color) 题解 题意描述 给长度为n的数列染色,若\(i-j\)为质数那么\(i,j\)异色.求最小需要的颜色种类并构造出一组. \(n\le10^4 ...

  6. jenkins的搭建及问题处理

    Jenkins搭建第一步 本文讲述的本人搭建Jenkins的流程及遇到的坑及处理方法 1.搭建 Linux操作系统为Centos Jenkins版本为24稳定版 操作命令: sudo wget -O ...

  7. 详解鸿蒙Next仓颉开发语言中的全屏模式

    大家好,今天跟大家分享一下仓颉开发语言中的全屏模式. 和ArkTS一样,仓颉的新建项目默认是非全屏模式的,如果你的应用颜色比较丰富,就会发现屏幕上方和底部的留白,这是应用自动避让了屏幕上方摄像头区域和 ...

  8. vscode GDB远程调试安卓

    如果是比较新的android ndk的版本,建议使用lldb进行调试,参考:vscode lldb远程调试 - OpenFDE - OpenFDE Docs,将lldbserver push到移动端, ...

  9. 1. 如何通过SSH连接到vector rob

    #anki #vector #robot #digital-dream-labs ssh连接到vector机器人操作系统: 将机器人放到充电底座上,连接电源,机器人自动启动,成功后,双击背部按钮打开蓝 ...

  10. SQL Server 部分包含数据库的原理

    原文链接:https://blog.csdn.net/zhoujunah/java/article/details/103513426 包含是针对数据库独立性而来的,非包含数据库(SQL Server ...