【问题标题】:How to reset the admin password for Datastax Opscenter?如何重置 Datastax Opscenter 的管理员密码?
【发布时间】:2016-05-03 09:28:23
【问题描述】:

如何在 Datastax Opscenter 中重置管理员密码?在 /etc/opscenter/opscenterd.conf 中禁用和重新启用身份验证可以解决问题吗?在此过程中我会丢失任何其他数据吗?

【问题讨论】:

    标签: cassandra opscenter


    【解决方案1】:

    我不知道在 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,这应该可以工作。否则,如果你有一个用户确实知道密码,你可以(查找并)将管理员密码设置为那个哈希,然后至少您将知道密码并能够登录。

    【讨论】:

    • 顺便说一句-我几乎可以肯定 DataStax 支持不会批准这种方法,所以使用风险自负。
    • 这是一个聪明的主意,我几乎同意了,但由于我们不需要在系统上保留任何其他用户 ID,我需要做的就是重置管理员用户名passwd.db 文件。
    【解决方案2】:

    原来这很简单。我需要做的就是停止 OpsCenter,重命名(或删除)passwd.db,然后再次重新启动 OpsCenter。守护进程自动创建一个新的密码数据库文件并将管理员密码设置为“admin”。

    【讨论】:

    • 很好的解决方案!很高兴你知道了。
    • 但是如果我想设置自定义密码如何更新?
    猜你喜欢
    • 2017-01-07
    • 2011-09-15
    • 1970-01-01
    • 2013-05-12
    • 2014-11-04
    • 2014-09-28
    • 2012-06-03
    • 1970-01-01
    相关资源
    最近更新 更多