1.11. 创建并使用 .dsrc File 为目录服务器命令行实用程序设置默认选项
~/.dsrc
文件简化了使用 Directory Server 命令行工具的命令。默认情况下,这些工具需要您传递,例如 LDAP URL 或将可分辨名称(DN)绑定到该命令。如果您将这些设置存储在 ~/dsrc
文件中,您可以使用命令行工具,而无需每次指定这些设置。
1.11.1. .dsrc 文件如何简化命令 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
以下是指定实例的 LDAP URL 和绑定 DN 的
~/.dsrc
文件示例:
[server1] uri = ldap://server1.example.com binddn = cn=Directory Manager basedn = dc=example,dc=com
[server1]
uri = ldap://server1.example.com
binddn = cn=Directory Manager
basedn = dc=example,dc=com
使用这些设置,您可以使用较短的目录服务器命令。例如,要创建一个用户帐户:
dsidm server1 user create
# 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
# 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 ...
# 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
: 设置用于 PLAIN 或 EXTERNAL 的 SASL 机制。例如:--saslmech PLAIN
1.11.3. 使用目录服务器实用程序时的远程和本地连接解析 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
在保护目录服务器连接时,务必要区分远程和本地调用目录服务器命令。
当您运行指定了 LDAP URL 的目录服务器命令时,服务器会将其视为远程连接,并检查
/etc/openldap/ldap.conf
配置文件以及系统范围的设置以继续命令。
当您运行指定了实例名称的 Directory Server 命令时,服务器会检查
~/.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 (Certificate and Key Database Directory) 部分。