【发布时间】:2016-05-03 09:28:23
【问题描述】:
如何在 Datastax Opscenter 中重置管理员密码?在 /etc/opscenter/opscenterd.conf 中禁用和重新启用身份验证可以解决问题吗?在此过程中我会丢失任何其他数据吗?
【问题讨论】:
如何在 Datastax Opscenter 中重置管理员密码?在 /etc/opscenter/opscenterd.conf 中禁用和重新启用身份验证可以解决问题吗?在此过程中我会丢失任何其他数据吗?
【问题讨论】:
我不知道在 OpsCenter 中简单地重置管理员密码的官方方法。但是,如果您愿意(并且如果您对服务器具有物理或 ssh 访问权限),我确实知道一种“hacky”方法。
OpsCenter 的用户身份验证保存在名为 passwd.db 的 SQLite 数据库文件中,该文件位于 OpsCenter 目录的根目录中。在 OpsCenter 中启用用户身份验证后,将创建该文件。使用 sqlite3,您可以打开和管理这个文件:
$ sqlite3 passwd.db
SQLite version 3.8.5 2014-08-15 22:37:57
Enter ".help" for usage hints.
sqlite> PRAGMA table_info(users);
0|id|INTEGER|0||1
1|username|TEXT|0||0
2|password|TEXT|0||0
3|groupid|INTEGER|0||0
sqlite> SELECT * FROM users;
1|admin|8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918|1
从上面看,您可以看到全新安装 OpsCenter 5.2.1 的“管理员”用户所在的行是以下内容的哈希:
8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
如果您将用户表上的密码字段更新为该值,它应该将其重置为原始值:
UPDATE users
SET password='8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918'
WHERE username='admin';
我不知道不同版本的 OpsCenter 上的密码是否使用相同的哈希值,但如果您使用的是 OpsCenter 5.2.1,这应该可以工作。否则,如果你有一个用户确实知道密码,你可以(查找并)将管理员密码设置为那个哈希,然后至少您将知道密码并能够登录。
【讨论】:
原来这很简单。我需要做的就是停止 OpsCenter,重命名(或删除)passwd.db,然后再次重新启动 OpsCenter。守护进程自动创建一个新的密码数据库文件并将管理员密码设置为“admin”。
【讨论】: