
# elasticsearch 修改密码
es有3种角色管理方式:
- Role management UI
- Role management API
- File-based role management
苍穹默认使用的是第三种内置文件域(File-based role management)的方式进行es认证,可能低版本部分环境使用了elastic这个内置用户(Role management API),针对这2个场景具体修改密码方式不一样。
## 开启密码验证
目前苍穹安装器默认开启了密码验证,可以通过检查配置文件elasticsearch.yml或直接curl http://127.0.0.1:9200/,报错表示已经开启。

不开启会存在es的未授权漏洞,所以常规环境下都建议开启,在elasticsearch.yml中添加参数重启后即可开启密码验证。
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
## 修改非elastic用户密码
使用第三种角色管理在配置目录下存在对应的user信息,可以通过此处查看用户账号

修改密码可以使用bin/elasticsearch-users重置(同样适用于新增用户)
示例新增一个cosmic用户密码Cosmic@2020,并且修改密码
./bin/elasticsearch-users useradd cosmic -p Cosmic@2020 -r superuser
./bin/elasticsearch-users passwd cosmic

修改完成后可以使用新密码测试是否正确
curl http://127.0.0.1:9200/_cat/indices?v -u 账号:密码

## 修改elastic用户密码
在知道旧密码的情况下,可以直接调用接口修改
```language
curl -u elastic:旧密码 -XPUT 'http://127.0.0.1:9200/_xpack/security/user/elastic/_password?pretty' -H 'Content-Type: application/json' -d '{ "password" : "'新密码'" }'
```

## 设置elastic用户密码
没有设置过elastic密码的情况下,可以