You need to enable JavaScript to run this app.
导航
基础使用
最近更新时间:2023.07.12 10:13:56首次发布时间:2023.07.12 10:13:56

火山引擎 E-MapReduce(EMR)使用 OpenLDAP 服务来管理用户集群的服务系统账号和通过控制台创建、导入的普通账号,您可以通过在控制台的集群详情 > 服务列表 > OpenLDAP > 服务参数界面中,获取各个服务管理员账号和密码信息。
E-MapReduce 提供了如下两种方式对集群用户进行管理:

  • 控制台操作(推荐):在控制台用户管理页面对集群中的用户进行管理操作,支持导入 IAM 用户、自定义创建用户、重置用户密码、删除用户,以及组管理。

  • 命令行操作:登录集群 master 节点,通过 OpenLDAP 提供的一系列命令实现对集群中的用户进行管理操作。

我们推荐您通过 EMR 控制台对集群中的用户、用户组进行管理,通过命令行方式操作集群用户、用户组将不会同步回 EMR 控制台。

1 控制台操作(推荐)

您可以在控制台用户管理页面对集群用户、用户组进行管理,这也是我们推荐的方式。
控制台展示的用户分为普通用户和系统用户:

  • 普通用户:用户在控制台自定义导入、创建的用户。

  • 系统用户(只读):集群初始化、或添加服务时自动创建的服务管理账号,这些账号不允许编辑。

通过控制台操作管理用户的详细说明可以详见用户管理

2 命令行操作

2.1 用户管理

基于命令行的方式操作 OpenLDAP 需要提供 admin 账号的密码数据,密码在创建集群后在Master节点上的/root/.emr/secret文件中获取

2.1.1 创建用户

创建 ldif 文件,模板如下:

  • 1.3.0 及其后续版本

    dn: uid=${uid},ou=user,ou=emr,dc=compute,dc=com
    uid: ${uid}
    cn: ${uid}
    sn: ${uid}
    objectClass: top
    objectClass: person
    objectClass: inetOrgPerson
    objectClass: posixAccount
    userPassword: ${passwd}
    uidNumber: ${uidNumber}
    gidNumber: 500
    homeDirectory: /home/${uid}
    
  • 1.3.0 之前的版本

    dn: uid=${uid},cn=emr,ou=ldap,dc=compute,dc=com
    uid: ${uid}
    cn: ${uid}
    sn: ${uid}
    objectClass: top
    objectClass: person
    objectClass: inetOrgPerson
    objectClass: posixAccount
    userPassword: ${passwd}
    uidNumber: ${uidNumber}
    gidNumber: 500
    homeDirectory: /home/${uid}
    

假设您需要创建名为 zhangsan 的用户,请将上述模板中的 ${uid} 替换成 zhangsan,并生成 add_user.ldif 文件,然后执行 ldapadd 命令:

ldapadd -f add_user.ldif -D "cn=admin,dc=compute,dc=com" -w ${openldap_admin_password}

注意

uidNumber 需要保证唯一性,否则在操作组件时可能遇到权限问题,而通过 EMR 控制台用户管理操作能够自动维护 uidNumber 的唯一性。

2.1.2 查找用户

  • 1.3.0 及其后续版本

    ldapsearch -b "uid=${uid},ou=user,ou=emr,dc=compute,dc=com" -D "cn=admin,dc=compute,dc=com" -w ${openldap_admin_password}
    
  • 1.3.0 之前的版本

    ldapsearch -b "uid=${uid},cn=emr,ou=ldap,dc=compute,dc=com" -D "cn=admin,dc=compute,dc=com" -w ${openldap_admin_password}
    

2.1.3 删除用户

  • 1.3.0 及其后续版本

    ldapdelete -x "uid=${uid},ou=user,ou=emr,dc=compute,dc=com" -D "cn=admin,dc=compute,dc=com" -w ${openldap_admin_password}
    
  • 1.3.0 之前的版本

    ldapdelete -x "uid=${uid},cn=emr,ou=ldap,dc=compute,dc=com" -D "cn=admin,dc=compute,dc=com" -w ${openldap_admin_password}
    

2.1.4 重置密码

  • 1.3.0 及其后续版本

    ldappasswd -x "uid=${uid},ou=user,ou=emr,dc=compute,dc=com" -s ${new_passwd} -D "cn=admin,dc=compute,dc=com" -w ${openldap_admin_password}
    
  • 1.3.0 之前的版本

    ldappasswd -x "uid=${uid},cn=emr,ou=ldap,dc=compute,dc=com" -s ${new_passwd} -D "cn=admin,dc=compute,dc=com" -w ${openldap_admin_password}
    

2.2 用户组管理

2.2.1 创建用户组

创建 ldif 文件,模板如下:

dn: cn=${group_name},ou=group,ou=emr,dc=compute,dc=com
cn: ${group_name}
ou: ${group_name}
objectClass: groupOfUniqueNames
uniqueMember: uid=${uid},ou=user,ou=emr,dc=compute,dc=com

假设您需要创建名为 rd 的用户组,请将上述模板中的 ${group_name} 替换成 rd,并生成 add_group.ldif 文件,然后执行 ldapadd 命令:

ldapadd -f add_group.ldif -D "cn=admin,dc=compute,dc=com" -w ${openldap_admin_password}

注意

创建用户组时必须指定至少一个 uniqueMember。

2.2.2 查找用户组

ldapsearch -b "cn=${group_name},ou=group,ou=emr,dc=compute,dc=com" -D "cn=admin,dc=compute,dc=com" -w ${openldap_admin_password}

2.2.3 删除用户组

ldapdelete -x "cn=${group_name},ou=group,ou=emr,dc=compute,dc=com" -D "cn=admin,dc=compute,dc=com" -w ${openldap_admin_password}

2.2.4 关联用户

创建 ldif 文件,模板如下:

dn: cn=${group_name},ou=group,ou=emr,dc=compute,dc=com
changetype: modify
add: uniqueMember
uniqueMember: uid=${uid},ou=user,ou=emr,dc=compute,dc=com

假设您需要将用户 zhangsan 关联到 rd 用户组中,请将模板中的 ${group_name} 替换成 rd,将模板中的 ${uid} 替换成 zhangsan,并生成 bind_user.ldif 文件,然后执行 ldapmodify 命令:

ldapmodify -f bind_user.ldif -D "cn=admin,dc=compute,dc=com" -w ${openldap_admin_password}

2.2.5 解绑用户

创建 ldif 文件,模板如下:

dn: cn=${group_name},ou=group,ou=emr,dc=compute,dc=com
changetype: modify
delete: uniqueMember
uniqueMember: uid=${uid},ou=user,ou=emr,dc=compute,dc=com

假设您需要将用户 zhangsan 从用户组 rd 中解绑,请将模板中的 ${group_name} 替换成 rd,将模板中的 ${uid} 替换成 zhangsan,并生成 unbind_user.ldif 文件,然后执行 ldapmodify 命令:

ldapmodify -f unbind_user.ldif -D "cn=admin,dc=compute,dc=com" -w ${openldap_admin_password}