1.11. 创建并使用 .dsrc 文件为目录服务器命令行工具设置默认选项

~/.dsrc 文件简化了使用 Directory Server 命令行工具的命令。默认情况下,这些工具要求您通过 LDAP URL 或将可分辨名称(DN)绑定到命令。如果您将这些设置存储在 ~/dsrc 文件中,您可以使用命令行工具而无需每次指定这些设置。

1.11.1. .dsrc File Simplifies commands

以下是 ~/.dsrc 文件示例,用于指定实例的 LDAP URL 和绑定 DN:
[server1]
uri = ldap://server1.example.com
binddn = cn=Directory Manager
basedn = dc=example,dc=com
使用这些设置,您可以使用较短的目录服务器命令。例如,创建用户帐户:
# dsidm server1 user create
如果没有 ~/.dsrc 文件,您必须在命令中指定绑定 DN、LDAP URL 和基本 DN:
# dsidm -D cn=Directory Manager ldap://server1.example.com -b "dc=example,dc=com" user create

1.11.2. 使用 dsctl 实用程序创建一个 .dsrc 文件

您可以使用 dsctl 工具创建它,而不是手动创建 ~/.dsrc 文件:
# dsctl instance_name dsrc create ...
您可以将以下选项传递给命令:
  • --URI :设置实例的 URL,格式为 protocol://host_name_or_IP_address_or_socket
    示例:
    • --uri ldap://server.example.com
    • --uri = ldaps://server.example.com
    • --uri = ldapi://%%2fvar%%2frun%%2fslapd-instance_name.socket
      如果您设置了目录服务器套接字的路径,请在路径中使用 %%02 而不是斜杠(/)。
      重要
      如果您使用 ldapi URL,服务器会识别运行 Directory Server 命令行工具的用户 ID (UID)和组 ID (GID)。如果您以 root 用户身份运行该命令,则 UID 和 GID 为 0, Directory 服务器将自动验证您是否作为 cn=Directory Manager 进行验证,而无需输入对应的密码。
  • --Start TLS :设置将工具配置为连接到 LDAP 端口,然后发送 STARTTLS 命令来切换到加密的连接。
  • --base DN :设置基本可分辨名称(DN)。例如: --basedn dc=example,dc=com
  • --bind DN :设置绑定 DN。例如 :--binddn cn=Directory Manager
  • --pwdfile :设置包含绑定 DN 密码的文件的路径。例如 :--pwdfile /root/rhds.pwd
  • --tls-cacertdir :当您使用 LDAPS 连接时,此参数中设置的路径定义了带有验证服务器证书所需的证书颁发机构(CA)证书的目录。例如 :--tls-cacertdir /etc/pki/CA/certs/
    请注意,在将 CA 证书复制到指定目录后,您必须使用 c_rehash /etc/pki/CA/certs/ 命令。
  • --tls-cert :设置到服务器证书的绝对路径。例如 :--tls-cert /etc/dirsrv/slapd-instance_name/Server-Cert.crt
  • --tls-key :设置到服务器私钥的绝对路径。例如 :--tls-key /etc/dirsrv/slapd-instance_name/Server-Cert.key
  • --tls-reqcert :设置在 TLS 会话中的服务器证书上执行哪些检查客户端实用程序。例如 :--tls-reqcert hard
    可用的参数如下:
    • Never :工具不请求或检查服务器证书。
    • Allow :实用程序忽略证书错误,连接建立。
    • hard :实用程序终止证书错误的连接。
  • --saslmech :设置用于 PLAINEXTERNAL 的 SASL 机制。例如 :--saslmech PLAIN

1.11.3. 使用目录服务器工具时的远程和本地连接解析

在保护目录服务器连接时,务必要区分远程和本地调用目录服务器命令。
当您使用指定的 LDAP URL 运行目录服务器命令时,服务器会将其视为远程连接,并检查 /etc/openldap/ldap.conf 配置文件以及系统范围的设置以继续该命令。
当您使用指定实例名称运行目录服务器命令时,服务器会检查 ~/.dsrc 文件是否存在,并应用以下逻辑继续:
  • 如果 ~/.dsrc 文件存在并包含实例名称和 LDAP URL,目录服务器将其视为远程连接,并检查 /etc/openldap/ldap.conf 配置文件和系统范围的设置。
  • 如果 ~/.dsrc 文件存在并且只包含指定的实例名称,或者 ~/.dsrc 文件不存在,目录服务器将其视为本地连接,并使用本地 dse.ldif 文件中的 nsslapd-certdir 设置来保护连接。如果没有 nsslapd-certdir,服务器使用默认路径 /etc/dirsrv/slapd-instance_name/ 来存储实例的网络安全服务(NSS)数据库。
有关 nsslapd-certdir 参数的更多信息,请参阅 nsslapd-certdir (证书和密钥数据库目录) 部分。