第 10 章 使用 ldapmodify 在外部管理 IdM 用户
			作为 IdM 管理员,您可以使用 ipa 命令管理您的目录内容。另外,您可以使用 ldapmodify 命令来实现类似的目标。您可以以交互方式使用这个命令,并直接在命令行中提供所有数据。您也可以在使用 LDAP 数据交换格式 (LDIF) 的文件中为 ldapmodify 命令提供数据。
		
10.1. 在外部管理 IdM 用户帐户的模板
				以下模板可用于 IdM 中的各种用户管理操作。模板显示您必须使用 ldapmodify 修改哪些属性才能实现以下目标:
			
- 添加新的 stage 用户
- 修改用户属性
- 启用用户
- 禁用用户
- 保留用户
模板的格式为 LDAP 数据交换格式(LDIF)。LDIF 是一种标准的纯文本数据交换格式,用来表示 LDAP 目录内容和更新请求。
使用模板,您可以配置调配系统的 LDAP 提供者来管理 IdM 用户帐户。
如需详细的示例流程,请参阅以下部分:
用于添加新 stage 用户的模板
- 用于添加 自动分配了 UID 和 GID 的用户的模板。所创建的条目的可区别的名称(DN)必须以 - uid=user_login开头:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 用于添加 静态分配了 UID 和 GID 的用户的模板: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 在添加 stage 用户时,您不需要指定任何 IdM 对象类。在激活用户后,IdM 自动添加这些类。 
用于修改现有用户的模板
- 修改用户的属性 : - dn: distinguished_name changetype: modify replace: attribute_to_modify attribute_to_modify: new_value - dn: distinguished_name changetype: modify replace: attribute_to_modify attribute_to_modify: new_value- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 禁用用户 : - dn: distinguished_name changetype: modify replace: nsAccountLock nsAccountLock: TRUE - dn: distinguished_name changetype: modify replace: nsAccountLock nsAccountLock: TRUE- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 启用用户 : - dn: distinguished_name changetype: modify replace: nsAccountLock nsAccountLock: FALSE - dn: distinguished_name changetype: modify replace: nsAccountLock nsAccountLock: FALSE- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 更新 - nssAccountLock属性不会对 stage 和preserved 用户造成影响。虽然更新操作成功完成,属性值也会保持- nssAccountLock:TRUE。
- 保留用户 : - dn: distinguished_name changetype: modrdn newrdn: uid=user_login deleteoldrdn: 0 newsuperior: cn=deleted users,cn=accounts,cn=provisioning,dc=idm,dc=example,dc=com - dn: distinguished_name changetype: modrdn newrdn: uid=user_login deleteoldrdn: 0 newsuperior: cn=deleted users,cn=accounts,cn=provisioning,dc=idm,dc=example,dc=com- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
在修改用户之前,使用用户的登录名进行搜索来获取用户的可区别名称(DN)。在以下示例中,user_allowed_to_modify_user_entries 用户是允许修改用户和组信息的用户,如 activator 或 IdM 管理员。示例中的密码是这个用户的密码:
[...] # ldapsearch -LLL -x -D "uid=user_allowed_to_modify_user_entries,cn=users,cn=accounts,dc=idm,dc=example,dc=com" -w "Secret123" -H ldap://r8server.idm.example.com -b "cn=users,cn=accounts,dc=idm,dc=example,dc=com" uid=test_user dn: uid=test_user,cn=users,cn=accounts,dc=idm,dc=example,dc=com memberOf: cn=ipausers,cn=groups,cn=accounts,dc=idm,dc=example,dc=com
[...]
# ldapsearch -LLL -x -D "uid=user_allowed_to_modify_user_entries,cn=users,cn=accounts,dc=idm,dc=example,dc=com" -w "Secret123" -H ldap://r8server.idm.example.com -b "cn=users,cn=accounts,dc=idm,dc=example,dc=com" uid=test_user
dn: uid=test_user,cn=users,cn=accounts,dc=idm,dc=example,dc=com
memberOf: cn=ipausers,cn=groups,cn=accounts,dc=idm,dc=example,dc=com