• Mac上安装OpenLDAP服务器详细教程(Homebrew安装和自带的ldap)


    目录

    前言

    一、安装 Homebrew(如果尚未安装)

    二、使用 Homebrew 安装 OpenLDAP

    三、配置 OpenLDAP

    步骤一:更新PATH和环境变量

    步骤二:配置slapd.conf

    步骤三:初始化和启动 OpenLDAP 服务

    1.创建数据库目录

    2.设置权限

    3.配置数据库文件

    步骤三:slapd.d配置目录

    1.使用slaptest生成配置

    2.报错1:数据库目录缺失

    3.报错2:数据库文件缺失

    4.报错3: slapd.d 目录不为空

    步骤四:启动slapd

    步骤五:验证LDAP服务

    步骤六:创建LaunchAgent(可选)

    其他:更换ldif文件

    1.重建testldap.ldif

    2.加载 LDIF 文件

    3.确认 LDAP 条目存在

    四、MAC自带版本和Homebrew安装版本的说明

    1.macOS自带的OpenLDAP

    2.Homebrew安装的OpenLDAP

    五、macOS自带的OpenLDAP。

    步骤一:确认OpenLDAP安装位置

    步骤二:编辑配置文件

    步骤三:创建数据目录

    步骤四:生成slapd.d配置目录

    步骤五:启动slapd

    步骤六:验证LDAP服务

    自动启动配置(可选)

    六、macOS自带的OpenLDAP 和 homebrew 安装的区别

    1. 安装位置

    2. 配置文件路径

    3. 版本管理

    4. 更新和安装方式

    5. 启动和管理服务

    选择哪一个?

    结论


    目录

    前言

    一、安装 Homebrew(如果尚未安装)

    二、使用 Homebrew 安装 OpenLDAP

    三、配置 OpenLDAP

    步骤一:更新PATH和环境变量

    步骤二:配置slapd.conf

    步骤三:初始化和启动 OpenLDAP 服务

    1.创建数据库目录

    2.设置权限

    3.配置数据库文件

    步骤三:slapd.d配置目录

    1.使用slaptest生成配置

    2.报错1:数据库目录缺失

    3.报错2:数据库文件缺失

    4.报错3: slapd.d 目录不为空

    步骤四:启动slapd

    步骤五:验证LDAP服务

    步骤六:创建LaunchAgent(可选)

    四、MAC自带版本和Homebrew安装版本的说明

    1.macOS自带的OpenLDAP

    2.Homebrew安装的OpenLDAP

    五、macOS自带的OpenLDAP。

    步骤一:确认OpenLDAP安装位置

    步骤二:编辑配置文件

    步骤三:创建数据目录

    步骤四:生成slapd.d配置目录

    步骤五:启动slapd

    步骤六:验证LDAP服务

    自动启动配置(可选)

    六、macOS自带的OpenLDAP 和 homebrew 安装的区别

    1. 安装位置

    2. 配置文件路径

    3. 版本管理

    4. 更新和安装方式

    5. 启动和管理服务

    选择哪一个?

    结论


    前言

    在macOS上安装LDAP服务器,最常用的选择是OpenLDAP。下面是如何使用Homebrew来安装OpenLDAP的步骤:

    注意:以下命令和过程适用于基于Homebrew的安装方式,如果您使用的是Mac with Apple Silicon (M1, M2等),请注意路径可能略有不同(通常为/opt/homebrew而非/usr/local)。

    本文以M2举例(MAC有自带的OpenLDAP,后面有比较两个安装版本)

    一、安装 Homebrew(如果尚未安装)

    如果尚未安装Homebrew,在终端中运行以下命令进行安装:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

    此脚本会安装Homebrew及其依赖项。

    二、使用 Homebrew 安装 OpenLDAP

    1、更新Homebrew以确保您安装的是最新版的软件:

    brew update

    2、安装OpenLDAP:

    brew install openldap

    三、配置 OpenLDAP

    OpenLDAP 的配置文件通常位于 /etc/openldap//usr/local/etc/openldap/ (根据您的系统和OpenLDAP版本,路径可能有所不同)。可以查看Homebrew安装信息来确认实际路径:

    brew info openldap

    MAC M2是以下路径。都在/opt/homebrew/下: 

     

    • /opt/homebrew/opt/openldap/bin/:可执行文件
    • /opt/homebrew/opt/openldap/sbin/:系统管理的可执行文件
    • /opt/homebrew/opt/openldap/lib/:库文件
    • /opt/homebrew/opt/openldap/libexe/:启动脚本  slapd文件
    • /opt/homebrew/etc/openldap/:配置文件  slapd.d 、slapd.conf 、slapd.ldif都在这里

    /opt/homebrew/etc/openldap

    /opt/homebrew/opt/openldap/libexec

    只有slapd文件

    步骤一:更新PATH和环境变量

    按照Homebrew的提示,更新你的环境变量以确保系统使用Homebrew安装的OpenLDAP版本。

    根据提示设置环境变量

    1. echo 'export PATH="/opt/homebrew/opt/openldap/bin:$PATH"' >> ~/.zshrc
    2. echo 'export PATH="/opt/homebrew/opt/openldap/sbin:$PATH"' >> ~/.zshrc
    3. echo 'export LDFLAGS="-L/opt/homebrew/opt/openldap/lib"' >> ~/.zshrc
    4. echo 'export CPPFLAGS="-I/opt/homebrew/opt/openldap/include"' >> ~/.zshrc
    5. source ~/.zshrc

    我这里只配置了PATH两个。

    步骤二:配置slapd.conf

    配置slapd.conf文件

    在/opt/homebrew/etc/openldap目录下(安装后会有默认生成的一些文件,我做了备份,重新创建了文件):

    /opt/homebrew/etc/openldap目录中创建并编辑slapd.conf文件(也可以使用vi vim都等编辑):

    sudo nano /opt/homebrew/etc/openldap/slapd.conf

    示例slapd.conf内容:

    1. include /opt/homebrew/etc/openldap/schema/core.schema
    2. pidfile /opt/homebrew/var/run/slapd.pid
    3. argsfile /opt/homebrew/var/run/slapd.args
    4. database mdb
    5. maxsize 1073741824
    6. suffix "dc=testldap,dc=com"
    7. rootdn "cn=admin,dc=testldap,dc=com"
    8. rootpw secret
    9. #数据库文件目录
    10. directory /opt/homebrew/var/openldap-data
    11. index objectClass eq
    • 修改suffixrootdn以匹配你的域名。
    • 修改rootpw为你的管理员密码

    步骤三:初始化和启动 OpenLDAP 服务

    要初始化LDAP目录,您首先需要创建一个LDIF文件,该文件定义了您的LDAP树和它的顶级条目(比如域名)。然后使用ldapadd命令将其添加到数据库中。

    默认情况下,OpenLDAP 不会随系统自动启动。可以手动启动 slapd,以便测试配置是否有效:

    1.创建数据库目录

    目录: /opt/homebrew/var/openldap-data

     如果 directory /opt/homebrew/var/openldap-data 中指定的目录不存在,你需要手动创建它:

    sudo mkdir -p /opt/homebrew/var/openldap-data

    这条命令会创建一个名为 openldap-data 的目录,位于 /opt/homebrew/var/ 下。确保目录创建成功,并且具有适当的权限以供 OpenLDAP 使用。

    2.设置权限

    1. sudo chown -R ldap:ldap /opt/homebrew/var/openldap-data
    2. 如果提示:
    3. chown: ldap: illegal group name
    4. 说明 ldap 组不存在,你可以尝试使用其他合适的组,例如 staff。staff 组通常存在于 macOS 系统中,并且用于一般的用户权限。以下是将数据库目录设置为 staff 组的命令:
    5. sudo chown -R :staff /opt/homebrew/var/openldap-data

    3.配置数据库文件

    要生成数据库文件,你需要运行 OpenLDAP 的 slapadd 工具,并提供一个 LDIF 文件来填充数据库。以下是生成数据库文件的基本步骤:

    1)创建 LDIF 文件:

    首先,你需要创建一个 LDIF 文件,用于定义你的 LDAP 数据。这个文件包含了条目(entry)和属性(attribute)的定义。这是一个示例 LDIF 文件的简单例子:

    在目录/opt/homebrew/var/openldap-data下创建testldap.ldif文件(可以使用 vi vim编辑器)

    1. # LDIF 文件示例
    2. # 定义根节点
    3. dn: dc=testldap,dc=com
    4. objectClass: top
    5. objectClass: dcObject
    6. objectClass: organization
    7. o: Example Organization
    8. dc: testldap
    9. # 定义管理员条目
    10. dn: cn=admin,dc=testldap,dc=com
    11. objectClass: organizationalRole
    12. cn: admin

    2)运行 slapadd

    使用 slapadd 工具将 LDIF 文件加载到数据库中。运行以下命令:

    1. sudo slapadd -F /opt/homebrew/etc/openldap/slapd.d -l your_ldif_file.ldif
    2. 例如:
    3. sudo slapadd -F /opt/homebrew/etc/openldap/slapd.d -l /opt/homebrew/var/openldap-data/testldap.ldif

    替换 your_ldif_file.ldif 为你的 LDIF 文件的路径和名称。

    -F 选项指定了 slapd.d 配置目录的路径,这样 slapadd 将把数据加载到正确的位置。

    加载后openldap-data文件下会生成如下文件:

    步骤三:slapd.d配置目录

    1.使用slaptest生成配置

    sudo slaptest -f /opt/homebrew/etc/openldap/slapd.conf -F /opt/homebrew/etc/openldap/slapd.d

    如果没有错误,上述命令会将配置文件转换为新的格式并存储在/opt/homebrew/etc/openldap/slapd.d目录中。

    2.报错1:数据库目录缺失

    /opt/homebrew/etc/openldap/slapd.conf: line 10: invalid path: No such file or directory

    第10行这个目录不存在:

    3.报错2:数据库文件缺失

    mdb_db_open: database "dc=testldap,dc=com" cannot be opened: No such file or directory (2). Restore from backup!
    backend_startup_one (type=mdb, suffix="dc=testldap,dc=com"): bi_db_open failed! (2)
    slap_startup failed (test would succeed using the -u switch)

    4.报错3: slapd.d 目录不为空

    slaptest如果报以下错误:

    config_setup_ldif: expected directory /opt/homebrew/etc/openldap/slapd.d to be empty! slaptest: bad configuration directory!

    错误消息表明 slapd.d 目录不是空的,但 slaptest 需要该目录为空才能正常工作。这可能是由于之前运行 slaptest 或其他操作导致 slapd.d 目录中存在了一些文件。

    1. 清空 slapd.d 目录:

      首先,确保 slapd.d 目录为空。你可以手动删除其中的文件:

      sudo rm -rf /opt/homebrew/etc/openldap/slapd.d/*

      运行完这个命令后,确保 slapd.d 目录为空。

    2. 重新运行 slaptest

      确保 slapd.d 目录为空后,重新运行 slaptest 命令:

      sudo slaptest -f /opt/homebrew/etc/openldap/slapd.conf -F /opt/homebrew/etc/openldap/slapd.d

      如果一切设置正确,slaptest 应该能够成功创建配置目录。

    步骤四:启动slapd

    启动slapd守护进程

    确认slapd存在位置:/opt/homebrew/opt/openldap/libexec/slapd

     sudo /opt/homebrew/opt/openldap/libexec/slapd -F /opt/homebrew/etc/openldap/slapd.d -d 1

    使用-d 1参数以调试模式启动,可以看到详细的日志输出。这有助于排查启动问题。

    步骤五:验证LDAP服务

    使用ldapsearch验证服务

    ldapsearch -x -H ldap://localhost:389 -b "dc=testldap,dc=com"
    

    连接成功,如下图: 

    步骤六:创建LaunchAgent(可选)

    如果希望OpenLDAP随系统启动,可以创建一个LaunchAgent。

    创建LaunchAgent文件

    创建文件~/Library/LaunchAgents/homebrew.mxcl.openldap.plist,内容如下:

    "1.0" encoding="UTF-8"?> "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> "1.0">  Label homebrew.mxcl.openldap ProgramArguments  /opt/homebrew/opt/openldap/libexec/slapd -F /opt/homebrew/etc/openldap/slapd.d  RunAtLoad <true/> KeepAlive <true/> StandardErrorPath /opt/homebrew/var/log/slapd.log StandardOutPath /opt/homebrew/var/log/slapd.log  

    加载LaunchAgent

    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.openldap.plist launchctl start homebrew.mxcl.openldap

    其他:更换ldif文件

    如果想创建一个包含 uid=admin 的 LDIF 文件,并加载到 LDAP 服务器中。可以更换ldif文件,例如:

    1.重建testldap.ldif

    清空并重新创建 OpenLDAP 数据目录(确保数据目录为空):

    1. sudo rm -rf /opt/homebrew/var/openldap-data/*

     确保数据目录的权限正确:

    sudo chown -R :staff /opt/homebrew/var/openldap-data
    

     文件内容:

    1. dn: dc=testldap,dc=com
    2. objectClass: top
    3. objectClass: dcObject
    4. objectClass: organization
    5. o: Test LDAP
    6. dc: testldap
    7. dn: cn=admin,dc=testldap,dc=com
    8. objectClass: simpleSecurityObject
    9. objectClass: organizationalRole
    10. cn: admin
    11. userPassword: secret
    12. dn: uid=admin,dc=testldap,dc=com
    13. objectClass: inetOrgPerson
    14. cn: Admin
    15. sn: Admin
    16. uid: admin
    17. userPassword: secret

    2.加载 LDIF 文件

    使用 slapadd 命令加载这个 LDIF 文件: 

    sudo slapadd -F /opt/homebrew/etc/openldap/slapd.d -l /opt/homebrew/var/openldap-data/testldap.ldif
    

     启动

     sudo /opt/homebrew/opt/openldap/libexec/slapd -F /opt/homebrew/etc/openldap/slapd.d -d 1

    3.确认 LDAP 条目存在

    再次使用 ldapsearch 命令确认条目存在:

    ldapsearch -x -H ldap://localhost:389 -D "cn=admin,dc=testldap,dc=com" -W -b "dc=testldap,dc=com" "(uid=admin)"

    确保这次搜索结果包含 uid=admin 条目。

    四、MAC自带版本和Homebrew安装版本的说明

    macOS自带了OpenLDAP,但其配置文件和安装位置与通过Homebrew安装的OpenLDAP可能有所不同。以下是对这两个安装版本的说明和如何处理的建议:

    1.macOS自带的OpenLDAP

    macOS自带的OpenLDAP相关文件通常位于 /etc/openldap 目录下。这个目录包含默认的配置文件和示例文件,例如:

    • AppleOpenLDAP.plist
    • ldap.conf
    • ldap.conf.default
    • schema/ 目录
    • slapd.conf.default
    • DB_CONFIG.example

    2.Homebrew安装的OpenLDAP

    通过Homebrew安装的OpenLDAP文件通常位于 /opt/homebrew/Cellar/openldap/ 目录下。这个目录下的内容一般包括:

    • bin/:可执行文件
    • sbin/:系统管理的可执行文件
    • lib/:库文件
    • etc/openldap/:配置文件

    更新环境变量,为了使用Homebrew安装的OpenLDAP,需要确保Homebrew路径在系统的PATH中优先:

    1. echo 'export PATH="/opt/homebrew/opt/openldap/bin:$PATH"' >> ~/.zshrc
    2. echo 'export PATH="/opt/homebrew/opt/openldap/sbin:$PATH"' >> ~/.zshrc
    3. source ~/.zshrc

    五、macOS自带的OpenLDAP。

    以下是如何配置和启动macOS自带的OpenLDAP服务的详细步骤。

    步骤一:确认OpenLDAP安装位置

    macOS自带的OpenLDAP通常位于/usr/libexec目录下,配置文件在/etc/openldap目录中。

    步骤二:编辑配置文件

    编辑slapd.conf文件

    /etc/openldap目录中找到并编辑slapd.conf文件:

    sudo nano /etc/openldap/slapd.conf

    示例slapd.conf内容:

    1. include /etc/openldap/schema/core.schema
    2. pidfile /var/run/slapd.pid
    3. argsfile /var/run/slapd.args
    4. database mdb
    5. maxsize 1073741824
    6. suffix "dc=my-domain,dc=com"
    7. rootdn "cn=admin,dc=my-domain,dc=com"
    8. rootpw secret
    9. directory /var/lib/openldap/openldap-data
    10. index objectClass eq
    • 修改suffixrootdn以匹配你的域名。

    • 修改rootpw为你的管理员密码。

    步骤三:创建数据目录

    确保数据目录存在并有正确的权限:

    1. sudo mkdir -p /var/lib/openldap/openldap-data
    2. sudo chown -R ldap:ldap /var/lib/openldap/openldap-data

    步骤四:生成slapd.d配置目录

    创建slapd.d目录

    sudo mkdir -p /etc/openldap/slapd.d

    使用slaptest生成配置

    sudo slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d

    步骤五:启动slapd

    启动slapd守护进程

    sudo /usr/libexec/slapd -F /etc/openldap/slapd.d -d 1

    使用-d 1参数以调试模式启动,可以看到详细的日志输出。这有助于排查启动问题。

    步骤六:验证LDAP服务

    使用ldapsearch验证服务

    ldapsearch -x -H ldap://localhost:389 -b "dc=my-domain,dc=com"

    自动启动配置(可选)

    如果希望OpenLDAP随系统启动,可以创建一个LaunchDaemon。

    1.创建LaunchDaemon文件

    创建文件/Library/LaunchDaemons/org.openldap.slapd.plist,内容如下:

    1. "1.0" encoding="UTF-8"?>
    2. "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    3. "1.0">
    4.   Label
    5.   org.openldap.slapd
    6.   ProgramArguments
    7.  
    8.       /usr/libexec/slapd
    9.       -F
    10.       /etc/openldap/slapd.d
    11.  
    12.   RunAtLoad
    13.   <true/>
    14.   KeepAlive
    15.   <true/>
    16.   StandardErrorPath
    17.   /var/log/slapd.log
    18.   StandardOutPath
    19.   /var/log/slapd.log

    2.加载LaunchDaemon

    1. sudo launchctl load /Library/LaunchDaemons/org.openldap.slapd.plist
    2. sudo launchctl start org.openldap.slapd

    六、macOS自带的OpenLDAP 和 homebrew 安装的区别

    macOS自带的OpenLDAP和通过Homebrew安装的OpenLDAP之间有几个关键区别,包括安装位置、配置文件路径、版本管理和更新方式。这些区别可能会影响如何管理和使用OpenLDAP服务。以下是详细的比较:

    1. 安装位置

    • macOS自带的OpenLDAP

      • 可执行文件位于系统路径,例如 /usr/libexec/slapd
      • 配置文件位于 /etc/openldap 目录。
      • 数据库文件通常位于 /var/db/openldap/var/lib/openldap
    • Homebrew安装的OpenLDAP

      • 可执行文件和库文件位于 Homebrew 的安装路径,例如 /usr/local/opt/openldap/opt/homebrew/opt/openldap(在Apple Silicon Mac上)。
      • 配置文件位于 Homebrew 的专用路径,如 /usr/local/etc/openldap/opt/homebrew/etc/openldap
      • 数据库文件路径通常在 Homebrew 安装目录下。

    2. 配置文件路径

    • macOS自带的OpenLDAP

      • 配置文件位于 /etc/openldap,包括 slapd.confldap.conf 等。
      • 默认配置文件路径由系统管理,更新和修改需要使用系统管理权限。
    • Homebrew安装的OpenLDAP

      • 配置文件位于 /usr/local/etc/openldap/opt/homebrew/etc/openldap
      • 配置文件更易于用户管理和修改,适合开发和实验环境。

    3. 版本管理

    • macOS自带的OpenLDAP

      • 由操作系统提供和维护,随系统更新。
      • 更新频率取决于操作系统的更新周期。
      • 版本可能较旧,不一定包含最新的特性和安全修复。
    • Homebrew安装的OpenLDAP

      • 由Homebrew社区维护和更新。
      • 更新频率更快,容易获得最新版本和修复。
      • 用户可以通过Homebrew命令轻松更新到最新版本。

    4. 更新和安装方式

    • macOS自带的OpenLDAP

      • 通过系统更新进行升级,用户不需要手动干预。
      • 版本更新频率取决于操作系统更新。
    • Homebrew安装的OpenLDAP

      • 通过Homebrew命令进行安装和更新,例如 brew install openldapbrew upgrade openldap
      • 用户可以控制版本更新,适合需要使用特定版本的用户。

    5. 启动和管理服务

    • macOS自带的OpenLDAP

      • 通常不默认启动,需要手动配置和启动。
      • 可以使用 macOS 的 launchd 服务进行管理。
    • Homebrew安装的OpenLDAP

      • 用户可以创建和管理自定义的 LaunchAgentLaunchDaemon 来启动和管理服务。
      • 更适合在开发环境中进行测试和实验。

    选择哪一个?

    • 使用macOS自带的OpenLDAP

      • 如果你只需要一个简单的、快速配置的LDAP服务,并且不需要最新的功能和修复。
      • 如果你希望最小化依赖并使用系统自带的工具。
    • 使用Homebrew安装的OpenLDAP

      • 如果你需要最新版本和快速更新。
      • 如果你希望在配置和路径上有更多的灵活性。
      • 如果你需要在开发环境中进行大量的测试和实验,并希望避免对系统文件进行修改。

    结论

    根据你的需求选择适合的版本。如果你需要最新的功能和更灵活的配置管理,建议使用Homebrew安装的OpenLDAP;如果你只需要一个简单、稳定的LDAP服务,可以使用macOS自带的OpenLDAP。

  • 相关阅读:
    nginx proxy_set_header设置、自定义header
    揭秘推特营销的策略
    卡塔尔世界杯倒计时!世界杯直播在哪里观看?美家市场汇总来了!
    d中shared用法
    ZooKeeper启停脚本
    聊聊jedis连接池参数配置
    Vue - 列表拖曳排序 / 鼠标拖动改变顺序排列高效简洁组件(支持PC端与移动端触屏拖动,也可在滚动条内排序自动滚动,流畅丝滑无 BUG)
    ubuntu设置初始的root密码
    快领这500万?成都市生物医药产业发展专项政策的申报范围、条件和材料
    &3 在浏览器中查看请求报文和响应报文
  • 原文地址:https://blog.csdn.net/shenlf_bk/article/details/139115970