1

古い CMDBUild に対処する必要がありますが、残念ながら、誰もスーパーユーザーのパスワードを持っていません。したがって、postgres データベースで直接変更したいと思います。

psqlでcmdbuildデータベースへの接続を管理しています。私はユーザーを呼び出すテーブルを持っていますが、私には次のようなものselect * from User;しかありません:

current_user 
--------------
 postgres
(1 row)

しかし、SELECT column_name FROM information_schema.columns WHERE table_name ='User';より多くの列を提供します:

 column_name 
-------------
 Id
 IdClass
 Code
 Description
 Status
 User
 BeginDate
 Notes
 Username
 Password
 Email
(11 lignes)

したがって、最初の選択は間違っているようです。他の 10 列はどこにありますか? その上、CMDBuild Technical Manual でこれらの行を見つけました。試してみましたが、結果はありませんでした。

execute the following SQL commands to create the "Superuser" user (in the example with
username admin and password admin):

INSERT INTO "User" ("Status", "Username", "IdClass", "Password", "Description") VALUES ('A', 'admin',
'"User"', 'DQdKW32Mlms=', 'Administrator');
INSERT INTO "Role" ("Status", "IdClass", "Administrator", "Description") VALUES ('A', '"Role"', true,
'SuperUser');
INSERT INTO "Map_UserRole" ("Status", "IdClass2", "IdClass1", "IdObj2", "IdObj1", "IdDomain") VALUES ('A

CMDBuild でスーパーユーザーのパスワードを回復または消去するのを手伝ってくれる人はいますか? 前もって感謝します。

4

1 に答える 1

1

この「CMDBuild」ツールは、組み込みの PostgreSQL ユーザーとロールではなく、独自のユーザー テーブルを使用しているようです。

他のことを行う前に、データベースの完全なバックアップを作成してください

既存のパスワードを回復したい場合は、それがソルト化されてハッシュされているか、プレーンテキストで保存されているかを確認する必要があります. プレーンテキストとして保存されている場合は、次のリリースで修正すると約束するまで、CMDBuild 開発者を怒らせてください。

平文の場合は、次のようになります。

select "Username", "Password" from "User" where "Username" = 'admin';

得られたパスワードでログインできない場合は、おそらくハッシュ化されている可能性があります。この場合、どのアルゴリズムが使用されているかを調べる必要があります。上記のステートメントの例を見ると、おそらく unix crypt です。抽出したパスワードをテキスト ファイルに入れて、Jack the Ripper または同様のクラッキング ツールを実行できます。

解読に失敗した場合でも、ハッシュ化されている方法を特定できれば、新しいパスワードをハッシュ化して次のように保存できます。

 UPDATE "User" SET "Password" = "sdgfsdf" WHERE "Username" = 'admin';

上記のプレースホルダー テキストを生成したハッシュに置き換えます。

(John the Ripper はパスワードの例を理解していないようです。つまり、ハッシュ化されていないか、UNIX crypt のような一般的に認識されている形式ではないということです)。

于 2013-05-23T00:05:29.360 に答える