2016-04-30 51 views

回答

1

事实证明,这是相当简单的。我需要做的只是停止OpsCenter,重命名(或删除)passwd.db,然后重新启动OpsCenter。守护进程自动创建一个新的密码db文件并将管理员密码设置为'admin'。

+0

好的解决方案!我很高兴你明白了。 – Aaron

1

我不知道的正式办法简单地重置OpsCenter中的管理员密码。但是,如果你想做到这一点(并且如果你有物理或SSH访问服务器的话),我确实知道这是一种“黑客”的方式。

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 

上面看,你可以看到一个全新的“admin”用户的行安装OpsCenter 5.2.1的是哈希:

8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918

如果更新用户表中该数值的密码字段,它应该重置回原来的:

UPDATE users 
SET password='8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918' 
WHERE username='admin'; 

我不知道不同版本的OpsCenter上的密码是否使用相同的哈希值,但如果您使用的是OpsCenter 5.2.1,则该值应该正常工作。否则,如果你有一个用户在那里,你做知道密码,你可以(抬头)设置管理员密码哈希,然后至少你会知道密码,并能登录。

+0

BTW-我几乎可以肯定,DataStax的支持不会赞成这种方法的,所以在你自己的风险。 – Aaron

+1

这是一个聪明的想法,我几乎用它去了,但因为我们没有必要保留任何其他用户ID的系统上的所有我需要做的重置管理员的用户名是删除passwd.db文件。 –