Создание нового администратора
Для создания нового администратора в Сканер-ВС необходимо выполнить следующее:
Подготовка SQLite
- перейти в рабочий каталог Сканер-ВС:
cd /var/lib/echelon/0/scanner/
- проверить наличие ПО sqlite3. Если программа не установлена, выполните следующие действия для установки её с диска:
откройте файл /etc/apt/sources.list с правами суперпользователя;
раскомментируйте строку с deb cdrom:...;
вставьте установочный диск Astra Linux и выполните команды:
sudo apt update
sudo apt install sqlite3
Генерация bcrypt-хеша
- сгенерировать хеш-пароль, используя следующие параметры:
-
Алгоритм: Bcrypt;
-
Фактор стоимости (Rounds/Cost Factor): 10 или 12.
Для генерации хеша можно воспользоваться любым доступным и доверенным сторонним решением (включая онлайн-сервисы, пакеты из удалённых репозиториев), поддерживающим «bcrypt». В итоге вы должны получить строку хеша, похожую на данный пример: $2a$10$QCSBZniZ1/ynLKHkBmE9EuwZzEWZHiAFs/GdygaAUOPC6fTEtVCYu. Скопируйте её.
Создание учетной записи
- далее подключиться к базе данных. Перед ручным изменением базы проверьте значение «services.pauth-server.database» в действующем файле scanner.yml. Приведённый ниже путь относится к стандартной установке Linux; при другом расположении используйте фактический файл базы. Сохраните резервную копию и проверьте соответствие схемы базы приведённым таблицам и полям:
sqlite3 /var/lib/echelon/0/scanner/pauth.sqlite
- выполнить следующий SQL-запрос, чтобы создать нового пользователя с обязательными полями (важно – заменить хеш на свой):
-- Добавляем пользователя superadmin
INSERT INTO users (
id, login, password_hash, name, surname, patronymic, phone, email, state, provider, password_updated_at
) VALUES (
lower(hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-4' || substr(hex(randomblob(2)), 2) || '-' ||
substr('89ab', abs(random()) % 4 + 1, 1) || substr(hex(randomblob(2)), 2) || '-' || hex(randomblob(6))),
'superadmin',
'$2a$12$u3PUEtXAjNLl00hNHBX9Qe0oaZEJDZxveaJBYaqZl07f3hTgBs1Xe', -- хеш для "superadmin"
'Иван', -- имя
'Иванов', -- фамилия
'Иванович', -- отчество
'+79990000000', -- телефон
'admin@example.com', -- email
'STATE_ACTIVE', -- статус
'internal', -- тип пользователя
datetime('now')
);
-- Назначаем роль администратора (role_id = 1)
INSERT INTO user_roles (user_id, role_id)
SELECT id, 1
FROM users
WHERE login='superadmin';
- для проверки выполнения воспользуйтесь следующим:
SELECT u.id, u.login, u.name, u.surname, u.email, r.name AS role
FROM users u
JOIN user_roles ur ON u.id = ur.user_id
JOIN roles r ON ur.role_id = r.id
WHERE u.login='superadmin';
-
после вы должны увидеть нового пользователя с ролью «admin»;
-
далее необходимо выйти из sqlite3, используя команду
.quit; -
чтобы изменения вступили в силу, перезапустите сервис Сканера-ВС:
systemctl restart scanner
После успешного выполнения запросов пользователь «superadmin» имеет назначенную роль администратора. Для входа используется пароль, которому соответствует заданный вами bcrypt-хеш. У этой учётной записи нет отдельного предустановленного пароля, она не заменяет установочного администратора «admin» при подтверждении привилегированных операций.