第 9 章 使用 ldapmodify 在外部管理 IdM 用户
作为 IdM 管理员,您可以使用 ipa
命令管理您的目录内容。另外,您可以使用 ldapmodify
命令来实现类似的目标。您可以以交互方式使用这个命令,并直接在命令行中提供所有数据。您也可以在使用 LDAP 数据交换格式 (LDIF) 的文件中为 ldapmodify
命令提供数据。
9.1. 在外部管理 IdM 用户帐户的模板
以下模板可用于 IdM 中的各种用户管理操作。模板显示您必须使用 ldapmodify
修改哪些属性才能实现以下目标:
- 添加新的 stage 用户
- 修改用户属性
- 启用用户
- 禁用用户
- 保留用户
模板的格式为 LDAP 数据交换格式(LDIF)。LDIF 是一种标准的纯文本数据交换格式,用来表示 LDAP 目录内容和更新请求。
使用模板,您可以配置调配系统的 LDAP 提供者来管理 IdM 用户帐户。
如需详细的示例流程,请参阅以下部分:
用于添加新 stage 用户的模板
用于添加 自动分配了 UID 和 GID 的用户的模板。所创建的条目的可区别的名称(DN)必须以
uid=user_login
开头:dn: uid=user_login,cn=staged users,cn=accounts,cn=provisioning,dc=idm,dc=example,dc=com changetype: add objectClass: top objectClass: inetorgperson uid: user_login sn: surname givenName: first_name cn: full_name
用于添加 静态分配了 UID 和 GID 的用户的模板:
dn: uid=user_login,cn=staged users,cn=accounts,cn=provisioning,dc=idm,dc=example,dc=com changetype: add objectClass: top objectClass: person objectClass: inetorgperson objectClass: organizationalperson objectClass: posixaccount uid: user_login uidNumber: UID_number gidNumber: GID_number sn: surname givenName: first_name cn: full_name homeDirectory: /home/user_login
在添加 stage 用户时,您不需要指定任何 IdM 对象类。在激活用户后,IdM 自动添加这些类。
用于修改现有用户的模板
修改用户的属性 :
dn: distinguished_name changetype: modify replace: attribute_to_modify attribute_to_modify: new_value
禁用用户 :
dn: distinguished_name changetype: modify replace: nsAccountLock nsAccountLock: TRUE
启用用户 :
dn: distinguished_name changetype: modify replace: nsAccountLock nsAccountLock: FALSE
更新
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)。在以下示例中,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