CMDBuild сброс пароля
Мне приходится иметь дело со старым CMDBUild, но, к сожалению, никто не имеет пароля суперпользователя. Поэтому я хотел бы изменить его непосредственно в базе данных postgres.
Мне удается подключиться к базе данных cmdbuild в psql. У меня есть таблица вызова пользователя, но 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, пробую, но безрезультатно.
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? Заранее спасибо.
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';
заменив текст заполнителя выше на сгенерированный вами хеш
(Джон Риппер, похоже, не понимает пример пароля, а это означает, что он либо не зашифрован, либо не в общепризнанном формате, таком как unix crypt).