Red Hat Training

A Red Hat training course is available for RHEL 8

第 34 章 使用 ldapmodify 在外部管理 IdM 用户

您可以使用 ldapmodifyldapdelete 工具直接从命令行界面(CLI)修改身份管理(IdM)LDAP。这些工具提供了用于添加、编辑和删除目录内容的完整功能。您可以使用这些工具管理服务器的配置条目以及用户条目中的数据。这些工具也可用于编写脚本,来执行一个或多个目录的批量管理。

34.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