头图

admin 用户是 Easysearch 通过配置文件 user.yml 默认添加的,配置如下:

## Demo users
admin:
  hash: "$2y$12$mA9DDk7iOBQA3u.Ebc0QSOVKsgwlkm6OJcrEcpyrTrT5M5It86usq" # 465f7466f79a67b9039d
  reserved: true
  external_roles:
    - "admin"
  description: "Admin user"

有两种方式可以重置密码:

  1. 通过配置文件 user.yml
  2. 通过用户 API 接口

配置文件

修改配置文件,将密码重置

## Demo users
admin:
  hash: "$2y$12$lszyO4fy25WKClSMZj7lIuQUse2UGuWBof1L1jL0qoXz6S5Yt/RS2" # admin111
  reserved: true
  external_roles:
    - "admin"
  description: "Admin user"

其中 hash 字段是将用户密码哈希出来的值,可通过 bin/hash_password.sh -p "<明文密码>" 生成。

注:多节点集群各节点上的配置文件需要保持一致。

修改 user.yml 配置文件,需将 .security 索引删除,重启集群重新生成 .security 索引才能生效。

直接使用 admin 用户进行删除报权限异常,这是因为 .security 是一个受保护的系统索引,对其进行操作需要使用管理证书。默认在 Easysearch 集群执行初始化脚本 bin/initialize.sh 时,会在 config 目录下生成证书文件,其中 admin.crtadmin.key 为管理证书。

使用管理证书进行对 .security 索引进行删除。

删除成功,重启集群,进行用户访问验证。

注:多节点集群各节点都需要重启。

用户 API

admin 用户在配置文件 user.yml 中配置了 reserved: true,只能使用拥有更高权限的管理证书进行密码重置,具体操作请查看这里

总结

方法操作影响
通过配置文件1、使用管理证书删除 .security 索引 2、修改配置文件 3、重启集群删除 .security 索引会导致所有的用户信息(主要是通过 API 创建的用户)丢失; 修改配置文件,对于多节点集群来说操作较多; 重启集群影响较大(特别是多节点集群)
通过 API 接口1、使用管理证书直接重置密码针对单个用户操作,影响较小

推荐使用 API 接口进行密码重置。


极限实验室
9 声望2 粉丝

极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。