--- title: "Easysearch 集群重置 admin 用户密码" date: 2025-01-12 lastmod: 2025-01-12 description: "Easysearch的admin用户密码可通过修改`user.yml`配置文件或使用用户API接口重置。配置文件方式需删除`.security`索引并重启集群,操作复杂且影响较大;API接口方式更简便,推荐使用。" tags: ["Easysearch"] summary: "admin 用户是 Easysearch 通过配置文件 user.yml 默认添加的,配置如下: ## Demo users admin: hash: "$2y$12$mA9DDk7iOBQA3u.Ebc0QSOVKsgwlkm6OJcrEcpyrTrT5M5It86usq" # 465f7466f79a67b9039d reserved: true external_roles: - "admin" description: "Admin user" 有两种方式可以重置密码: 通过配置文件 user.yml 通过用户 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 用户进行删除报权限异常,这是因为 ." --- admin 用户是 Easysearch 通过配置文件 user.yml 默认添加的,配置如下: ```yaml ## Demo users admin: hash: "$2y$12$mA9DDk7iOBQA3u.Ebc0QSOVKsgwlkm6OJcrEcpyrTrT5M5It86usq" # 465f7466f79a67b9039d reserved: true external_roles: - "admin" description: "Admin user" ``` {{% load-img "/img/blog/2025/easysearch-reset-admin-password/1.png" %}} 有两种方式可以重置密码: 1. 通过配置文件 `user.yml` 2. 通过用户 `API` 接口 ## 配置文件 修改配置文件,将密码重置 ```yaml ## 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` 索引才能生效。 {{% load-img "/img/blog/2025/easysearch-reset-admin-password/2.png" %}} 直接使用 `admin` 用户进行删除报权限异常,这是因为 `.security` 是一个受保护的系统索引,对其进行操作需要使用[管理证书](https://docs.infinilabs.com/easysearch/main/docs/references/security/configuration/tls.md#配置管理证书)。默认在 Easysearch 集群执行初始化脚本 `bin/initialize.sh` 时,会在 `config` 目录下生成证书文件,其中 `admin.crt`、`admin.key` 为管理证书。 使用管理证书进行对 `.security` 索引进行删除。 {{% load-img "/img/blog/2025/easysearch-reset-admin-password/3.png" %}} 删除成功,重启集群,进行用户访问验证。 {{% load-img "/img/blog/2025/easysearch-reset-admin-password/4.png" %}} > 注:多节点集群各节点都需要重启。 ## 用户 API `admin` 用户在配置文件 `user.yml` 中配置了 `reserved: true`,只能使用拥有更高权限的[管理证书](https://docs.infinilabs.com/easysearch/main/docs/references/security/configuration/tls.md#配置管理证书)进行密码重置,具体操作请查看[这里](./easysearch-use-api-reset-user-password.md#配置文件创建的用户)。 ## 总结 | 方法 | 操作 | 影响 | | ------------- | -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | | 通过配置文件 | 1、使用管理证书删除 .security 索引 2、修改配置文件 3、重启集群 | 删除 .security 索引会导致所有的用户信息(主要是通过 API 创建的用户)丢失; 修改配置文件,对于多节点集群来说操作较多; 重启集群影响较大(特别是多节点集群) | | 通过 API 接口 | 1、使用管理证书直接重置密码 | 针对单个用户操作,影响较小 | 推荐使用 API 接口进行密码重置。