2016-04-30 107 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文件。 –