火山引擎 LAS 借助 OpenLDAP 服务对用户集群的服务系统账号以及通过控制台创建、导入的普通账号予以管理。您能够在控制台的集群详情 >服务列表>OpenLDAP> 服务参数界面当中,获取各类服务管理员账号和密码的信息。
平台提供了如下两种方式对集群用户进行管理:
我们推荐您通过 LAS 控制台对集群中的用户、用户组进行管理,通过命令行方式操作集群用户、用户组将不会同步回 LAS 控制台。
您可以在控制台用户管理页面对集群用户、用户组进行管理,这也是我们推荐的方式。
控制台展示的用户分为普通用户和系统用户:
通过控制台操作管理用户的详细说明可以详见用户管理。
基于命令行的方式操作 OpenLDAP 需要提供 admin 账号的密码数据,密码在创建集群后在Master节点上的/root/.emr/secret文件中获取
创建 ldif 文件,模板如下:
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}
假设您需要创建名为 zhangsan 的用户,请将上述模板中的 ${uid}
替换成 zhangsan,并生成 add_user.ldif 文件,然后执行 ldapadd 命令:
ldapadd -f add_user.ldif -D "cn=admin,dc=compute,dc=com" -w ${openldap_admin_password}
uidNumber 需要保证唯一性,否则在操作组件时可能遇到权限问题,而通过 LAS 控制台用户管理操作能够自动维护 uidNumber 的唯一性。
ldapsearch
命令查询用户ldapsearch -b "uid=${uid},ou=user,ou=emr,dc=compute,dc=com" -D "cn=admin,dc=compute,dc=com" -w ${openldap_admin_password}
ldapdelete
命令执行删除用户ldapdelete -x "uid=${uid},ou=user,ou=emr,dc=compute,dc=com" -D "cn=admin,dc=compute,dc=com" -w ${openldap_admin_password}
ldappasswd
命令为用户重置密码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}
创建用户组
创建 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。
查找用户组
ldapsearch -b "cn=${group_name},ou=group,ou=emr,dc=compute,dc=com" -D "cn=admin,dc=compute,dc=com" -w ${openldap_admin_password}
删除用户组
ldapdelete -x "cn=${group_name},ou=group,ou=emr,dc=compute,dc=com" -D "cn=admin,dc=compute,dc=com" -w ${openldap_admin_password}
关联用户
创建 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}
解绑用户
创建 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}