Перейти к основному содержимому
Версия: 7.3

Создание нового администратора

Для создания нового администратора в Сканер-ВС необходимо выполнить следующее:

Подготовка SQLite​

  1. перейти в рабочий каталог Сканер-ВС:
cd /var/lib/echelon/0/scanner/
  1. проверить наличие ПО sqlite3. Если программа не установлена, выполните следующие действия для установки её с диска:

откройте файл /etc/apt/sources.list с правами суперпользователя;

раскомментируйте строку с deb cdrom:...;

вставьте установочный диск Astra Linux и выполните команды:

sudo apt update
sudo apt install sqlite3

Генерация bcrypt-хеша​

  1. сгенерировать хеш-пароль, используя следующие параметры:
  • Алгоритм: Bcrypt;

  • Фактор стоимости (Rounds/Cost Factor): 10 или 12.

Для генерации хеша можно воспользоваться любым доступным и доверенным сторонним решением (включая онлайн-сервисы, пакеты из удалённых репозиториев), поддерживающим «bcrypt». В итоге вы должны получить строку хеша, похожую на данный пример: $2a$10$QCSBZniZ1/ynLKHkBmE9EuwZzEWZHiAFs/GdygaAUOPC6fTEtVCYu. Скопируйте её.

Создание учетной записи​

  1. далее подключиться к базе данных. Перед ручным изменением базы проверьте значение «services.pauth-server.database» в действующем файле scanner.yml. Приведённый ниже путь относится к стандартной установке Linux; при другом расположении используйте фактический файл базы. Сохраните резервную копию и проверьте соответствие схемы базы приведённым таблицам и полям:
sqlite3 /var/lib/echelon/0/scanner/pauth.sqlite
  1. выполнить следующий 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';
  1. для проверки выполнения воспользуйтесь следующим:
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';
  1. после вы должны увидеть нового пользователя с ролью «admin»;

  2. далее необходимо выйти из sqlite3, используя команду .quit;

  3. чтобы изменения вступили в силу, перезапустите сервис Сканера-ВС:

systemctl restart scanner

После успешного выполнения запросов пользователь «superadmin» имеет назначенную роль администратора. Для входа используется пароль, которому соответствует заданный вами bcrypt-хеш. У этой учётной записи нет отдельного предустановленного пароля, она не заменяет установочного администратора «admin» при подтверждении привилегированных операций.