Управление пользователями из командной строки
Команда prostore user создает, изменяет и удаляет пользователей Tengri напрямую в каталоге метаданных, без подключения к работающему серверу.
Она нужна, когда войти в систему нельзя или неудобно: при первоначальной настройке, при потере доступа администратора, для массовых операций из скриптов.
В остальных случаях пользователями удобнее управлять через SQL (CREATE USER, ALTER USER, DROP USER) или раздел настроек веб-интерфейса.
|
Командная строка работает с каталогом от имени администратора и не проверяет привилегии. Любой, кто может ее запустить с доступом к каталогу, может создать администратора или сменить его пароль. Ограничьте доступ к серверам Tengri и к базе данных каталога. |
Подключение к каталогу
Каждая команда требует строку подключения к каталогу метаданных.
Ее можно передать параметром --catalog-uri или переменной окружения TNGRI_CATALOG_URI (TENGRI_CATALOG_URI тоже принимается):
export TNGRI_CATALOG_URI=postgresql://prostore:prostore@<IP_КАТАЛОГА>:5432/prostore
prostore user list
Это та же строка, что используется при запуске сервера, см. Настройка параметров через переменные окружения.
Команды
| Команда | Назначение |
|---|---|
|
Вывести список пользователей. |
|
Создать пользователя. |
|
Изменить пользователя: имя, пароль, воркер пул, способы входа, блокировка входа. |
|
Безвозвратно удалить пользователя. |
|
Выпустить токен восстановления доступа. |
Список пользователей
prostore user list
Выводит имя, дату создания и пул по умолчанию для каждого пользователя, включая встроенных служебных пользователей (см. Встроенные пользователи). ИИ-агенты в список не входят.
Создание пользователя
| Параметр | Описание |
|---|---|
|
Имя пользователя. Обязательный. |
|
Пароль для входа по паролю. |
|
Пул вычислителей по умолчанию. |
|
Поставщик SSO, через которого пользователь будет входить. |
|
Идентификатор пользователя у поставщика SSO (NameID). Без него вход через SSO не работает. |
Пользователь с паролем:
prostore user create --username alice --password '<пароль>' --pool default
Пользователь, который входит только через SSO:
prostore user create --username bob \
--sso-idp corp-saml \
--sso-subject-id bob@example.com
Новый пользователь получает те же стандартные права, что и пользователь, созданный через SQL.
Если не задан ни пароль, ни SSO, пользователь создается, но войти не сможет — команда предупредит об этом.
Способ входа можно добавить позже командой edit.
Правила сложности паролей из парольной политики (см. Парольная политика и защита доступа) к паролям, заданным из командной строки, не применяются.
Кроме того, пароль, заданный при создании, не попадает в историю паролей и не отсчитывает срок действия — это происходит только при смене пароля командой edit или средствами SQL.
|
Изменение пользователя
Команда edit меняет только переданные параметры, остальное остается как было.
| Параметр | Описание |
|---|---|
|
Пользователь, которого нужно изменить. Обязательный. |
|
Новое имя пользователя. Права при этом не переносятся, см. предупреждение ниже. |
|
Новый пароль. Включает вход по паролю и снимает блокировку учетной записи. |
|
Новый пул по умолчанию. Пустая строка |
|
Разрешить или запретить вход в учетную запись. |
|
Включить или выключить вход по паролю, не меняя сам пароль. Включить можно только если пароль уже задан. |
|
Включить или выключить вход через SSO. |
|
Назначить или сменить поставщика SSO. |
|
Назначить или сменить идентификатор пользователя у поставщика SSO. |
|
Связать пользователя с учетной записью LDAP. Указываются вместе. |
|
Включить или выключить вход через LDAP. Пока он включен, вход по паролю выключен. |
|
Снять связь с LDAP и вернуть вход по паролю. |
Параметры LDAP требуют мастер-ключ в переменной окружения TNGRI_MASTER_KEY.
Порядок связывания и включения входа через LDAP описан в разделе о связывании через командную строку.
Типовые действия
Сбросить пароль и разблокировать учетную запись после серии неудачных входов:
prostore user edit --username alice --password '<новый пароль>'
Запретить вход, не удаляя пользователя:
prostore user edit --username alice --inactive
Перевести пользователя с пароля на SSO:
prostore user edit --username alice \
--sso-idp corp-saml --sso-subject-id alice@example.com \
--enable-sso --disable-password
|
Переименование из командной строки не переносит роли и привилегии пользователя: они остаются закрепленными за старым именем.
Переименованный пользователь теряет свои права, а новый пользователь, созданный со старым именем, получит их.
Переименовывайте пользователей командой SQL |
|
Смена пароля снимает и блокировку после неудачных входов, и запрет входа, заданный
|
Удаление пользователя
prostore user delete --username alice
Удаление безвозвратно: вместе с пользователем удаляются его токены API, секреты, история паролей и выданные ему права.
Команда запрашивает подтверждение; параметр --yes пропускает его, например в скриптах.
Если пользователя нужно лишь временно отключить, используйте edit --inactive.
Выпуск токена восстановления
prostore user mint-recovery --username admin
Команда выводит токен один раз; сохраните его вне Tengri. Как и когда им пользоваться, описано в чек-листе восстановления доступа.
Встроенные пользователи
При каждом запуске сервер проверяет, что существуют встроенные пользователи: администратор admin и служебные пользователи подсистем — compaction, webapp, mcp, monkey, seed.
Недостающие создаются заново.
|
Не переименовывайте и не удаляйте встроенных пользователей.
Чтобы защитить учетную запись |