6.2. setpin Works
PIN Generator 为 LDAP 目录中的用户条目生成 PIN,并使用这些 PIN 更新目录。要运行 setpin 命令,需要以下五个选项:
- LDAP 服务器的主机名(主机)和端口号(端口)
- 绑定 DN (binddn)和密码(bindpw)
- 用于过滤需要 PIN 的用户条目的 LDAP过滤器(过滤 )
setpin 命令类似如下:
setpin host=csldap port=19000 binddn="CN=Directory Manager" bindpw=secret filter="(ou=employees)" basedn="dc=example,dc=com"
setpin host=csldap port=19000 binddn="CN=Directory Manager" bindpw=secret filter="(ou=employees)" basedn="dc=example,dc=com"
本例查询 员工 组织单元中的所有条目的目录(ou)。对于与过滤器匹配的每个条目,信息将打印为标准输出和标准输出。
注意
由于 PIN Generator 对目录进行大量更改,因此使用正确的过滤器或修改错误的条目非常重要。使用 write 选项是一个保护,因为除非使用了该选项,不会对该目录进行任何更改。这允许在修改任何条目前验证 PIN。
可以使用输出选项将信息写入不同的输出文件中 ; 如需更多信息,请参阅 第 6.2.2 节 “输出文件”。使用列出条目 DN 的 ASCII 输入文件可以进一步限制 LDAP 搜索过滤器返回的条目;仅更新与文件中匹配的条目。输入文件使用 input 选项设置。输入文件不是 LDAP 目录条目的替代;必须仍提供 filter 属性。有关输入文件的详情,请参考 第 6.2.1 节 “输入文件”。图 6.1 “在生成 PIN 时使用输入和输出文件” 显示输入和输出文件如何与 setpin 工具一起工作。
图 6.1. 在生成 PIN 时使用输入和输出文件
输出文件包含来自运行 setpin 的条目和 PIN 信息,如下例所示:
输出中还包含目录中每个条目的状态。状态值列在 表 6.1 “PIN Generator 状态 ” 中。
退出代码 | 描述 |
---|---|
notwritten | PIN 没有写入目录,因为没有使用 write 选项。 |
writefailed | 工具尝试修改目录,但写入操作失败。 |
添加了 | 该工具成功将新的 PIN 添加到目录中。 |
替换 | 该工具将旧的 PIN 替换为一个新 PIN,这意味着使用了 clobber 选项。 |
Notreplaced | 该工具没有将旧的 PIN 替换为一个新 PIN,这意味着不使用 clobber 选项。 |
如果用户已存在 PIN,如果 setpin 命令第二次运行,则不会更改。这允许为新用户创建新的 PIN,而无需覆盖已收到 PIN 的用户的 PIN。要覆盖 PIN,请使用 clobber 选项。
6.2.1. 输入文件 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
PIN Generator 可以接收要在 输入参数 指定的文本文件中修改的 DN 列表。如果指定了输入文件,则工具会将过滤返回的 DN 与输入文件中的 DN 进行比较,仅更新输入文件中匹配的 DN。
输入允许用户向 PIN Generator 提供要修改的 DN 列表;也可以为所有 DN 或特定 DN 以纯文本为 PIN 提供 PIN Generator。
使用输入文件时有两个常见情况非常有用:
- 如果为用户目录中的所有条目设置了 PIN,并且新用户加入该机构。要使新用户获取证书,目录必须包含 PIN。仅应为这两个条目生成 pins,而不更改任何其他用户条目。使用输入文件允许使用常规过滤器,而修改的条目仅限于输入文件中列出的两个用户的 DN,而不是构建复杂的 LDAP 过滤器。
- 如果特定值(如 Social Security number)应用作 PIN,则 Social 安全号可以放在输入文件中,并将这些数字作为 PIN Generator 提供。然后,它们作为哈希值存储在目录中。
输入文件的格式与输出文件的格式相同(请参阅 第 6.2.2 节 “输出文件”),但 status 行除外。在输入文件中,可以为文件中的所有 DN、特定 DN 或任何 DN 设置 PIN。如果 DN 缺少 PIN 属性,该工具会自动生成随机 PIN。
输入文件类似以下示例:
pins 也可以以纯文本格式为 DN 提供;这些 PIN 会根据命令行参数进行哈希处理。
注意
无法向工具提供散列 PIN。
6.2.2. 输出文件 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
PIN Generator 可将输出捕获到 output 选项指定的文本文件中。
输出包含一系列记录,格式为:
其中 user_dn 是与 DN 过滤器或输入文件中列出的可分辨名称。默认情况下,分隔符是分号(;)或命令行中定义的字符。generate_pin 是固定或变量长度的字符串,具体取决于使用的长度参数。status 是列出 表 6.1 “PIN Generator 状态 ” 的值之一。
每个记录的第一行始终是 DN。pin 和 status 的后续行是可选的。记录以空白行结尾,使用 Unix 行序列(\n)。
6.2.3. PIN 如何保存在目录中 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
每个 PIN 与 saltattribute 参数中指定的对应 LDAP 属性连接(默认为条目 DN,推荐的值)。如果没有指定此参数,则使用 DN。
该字符串通过 hash 参数指定的例程进行哈希处理;默认算法是 SHA-1,但应将其设置为 none,以便它用于限制使用传入散列密码的目录服务器。
一个字节被添加,以指示使用的哈希类型。PIN 存储如下:
byte[0] = X
byte[0] = X
X 的值取决于 PIN 生成过程中选择的哈希算法。
X | hash Algorithm |
---|---|
0 | SHA-1 |
1 | MD5 |
45 | none |
PIN 作为二进制值存储在目录中,而不是作为 base-64 编码值。
6.2.4. 退出代码 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
当 PIN Generator 完成后,它会返回一个结果代码,显示它如何结束。这些结果代码列在 表 6.2 “PIN Generator 返回的结果代码” 中。
结果代码 | 描述 |
---|---|
0 | PIN 生成成功;为指定目录中所有 DN 设置 PIN。 |
4 | 该工具无法作为 binddn 参数中指定的用户绑定到该目录。 |
5 | 该工具无法打开 output 参数中指定的输出文件。 |
7 | 解析命令行参数时出错。 |
8 | 该工具无法打开输入参数中指定的 输入文件。 |
9 | 该工具遇到内部错误。 |
10 | 该工具在输入文件中找到了一个重复条目。 |
11 | 该工具找不到目录中 saltattribute 参数中指定的 salt 属性。 |