2016-04-30 2 views

答えて

1

これはかなり単純だった。私がする必要があったのは、OpsCenterを停止し、passwd.dbの名前を変更(または削除)し、OpsCenterを再起動することでした。デーモンは自動的に新しいパスワードdbファイルを作成し、管理者パスワードを 'admin'に設定します。

+0

良い解決策!私はあなたがそれを理解してうれしいです。 – Aaron

1

私は、OpsCenterの管理者パスワードをリセットする公式の方法には気づきません。しかし、もしあなたがそれを上手くやっているならば(また、サーバに物理的にまたはsshでアクセスしているならば)、それを行うための "ハッピーな"方法を知っています。

OpsCenterのユーザー認証は、OpsCenterディレクトリのルートにあるpasswd.dbという名前のSQLiteデータベースファイルで維持されます。このファイルは、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

あなたはその値にusersテーブル上のパスワードフィールドを更新した場合、それ元に戻ってそれをリセットする必要があります:

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

異なるバージョンのOpsCenterのパスワードが同じハッシュを使用するかどうかはわかりませんが、これはOpsCenter 5.2.1を使用している場合に有効です。そうでない場合は、のユーザーがにパスワードを知っている場合は、に管理パスワードを設定して(ハッシュ)、少なくともパスワードを知り、ログインする。

+0

私は、DataStaxのサポートがこの方法を承認しないことをほぼ肯定しているので、自己責任で使用してください。 – Aaron

+1

それは賢明な考えですが、私はほとんどそれに行きましたが、管理者ユーザー名をリセットするために必要だった他のユーザーIDをシステムに残す必要はなかったので、passwd.dbファイルを削除してください。 –

関連する問題