Перейти к основному содержимому

Пользователи

Команда semaphore users добавляет, изменяет, удаляет и показывает пользователей, а также управляет их API-токенами и проверкой TOTP (2FA).

semaphore users --help

user — псевдоним для users.

КомандаНазначение
users addСоздать пользователя.
users change-by-loginОбновить пользователя, найденного по логину.
users change-by-emailОбновить пользователя, найденного по email.
users getВывести данные одного пользователя.
users listВывести логины всех пользователей.
users deleteУдалить пользователя.
users token createСоздать API-токен для пользователя.
users token listПоказать API-токены пользователя.
users totp enableВключить TOTP для пользователя.
users totp showПоказать данные TOTP пользователя.
users totp disableОтключить TOTP для пользователя.

Добавление пользователя

semaphore user add \
--admin \
--login newAdmin \
--email [email protected] \
--name "New Admin" \
--password "New$Password"
ФлагОписание
--loginЛогин пользователя. Обязательный.
--nameОтображаемое имя пользователя. Обязательный.
--emailEmail пользователя. Обязательный.
--passwordПароль пользователя. Обязателен для обычных пользователей; недопустим для внешних.
--adminСделать нового пользователя администратором.
--externalПометить нового пользователя как внешнего (LDAP или OIDC). Внешним пользователям нельзя задавать --password.

При успехе команда выводит User <login> <email> added!.

Изменение пользователя

Пользователя для изменения можно найти либо по логину, либо по email.

# Find user by login
semaphore user change-by-login \
--login myAdmin \
--password "New$Password"

# Find user by email
semaphore user change-by-email \
--email [email protected] \
--name "Renamed Admin"
ФлагОписание
--loginДля change-by-login — логин искомого пользователя (обязательный). Для change-by-email — новый логин пользователя.
--emailДля change-by-email — email искомого пользователя (обязательный). Для change-by-login — новый email пользователя.
--nameНовое имя пользователя.
--passwordНовый пароль пользователя.
--adminВыдать права администратора.

Применяются только указанные флаги; пропущенные поля остаются без изменений. --admin может только выдать права администратора. Отозвать их он не может — для этого используйте веб-интерфейс.

Просмотр пользователя

Вывести данные одного пользователя, найденного по логину или email.

semaphore user get --login myAdmin
# or
semaphore user get --email [email protected]

Требуется хотя бы один из флагов --login или --email. Вывод включает ID пользователя, время создания, логин, имя, email и статус администратора. Если пользователь не найден, команда выводит сообщение и завершается с ненулевым статусом.

Список пользователей

Вывести логины всех пользователей, по одному на строку.

semaphore user list

Удаление пользователя

Удалить пользователя, найденного по логину или email.

semaphore user delete --login myAdmin
# or
semaphore user delete --email [email protected]

Требуется хотя бы один из флагов --login или --email.

Управление API-токенами

Управление API-токенами пользователя через CLI:

semaphore user token --help

Создание токена

# Token that never expires
semaphore user token create --login john --name "CI token"

# Token that expires after 24 hours
semaphore user token create --login john --name "CI token" --ttl 24h
ФлагОписание
--loginЛогин владельца токена. Обязательный.
--nameИмя токена.
--ttlСрок жизни токена в формате Go duration (например 1h, 30m, 24h). Если не указан, токен бессрочный.

Команда выводит новый токен отдельной строкой и больше ничего, поэтому его безопасно захватывать в скрипте:

TOKEN=$(semaphore user token create --login ci --name "CI token" --ttl 720h)

При недопустимом значении --ttl или неизвестном логине выводится сообщение об ошибке, и команда завершается с ненулевым статусом.

Список токенов

semaphore user token list --login john

--login обязателен. В каждой строке через табуляцию выводятся имя токена, его статус (active или expired) и время истечения в формате RFC 3339 (never, если срок не ограничен). Значения токенов никогда не выводятся.

Управление TOTP

Управление проверкой по одноразовым паролям на основе времени (2FA) через CLI:

semaphore user totp --help
# Enable TOTP for a user (prints a recovery code, the otpauth URL, and a QR code)
semaphore user totp enable --login john

# Show the current TOTP details (otpauth URL and QR code)
semaphore user totp show --login john

# Disable TOTP for a user
semaphore user totp disable --login john

Все подкоманды TOTP требуют --login.

  • enable выводит одноразовый код восстановления, URL otpauth:// и QR-код для сканирования. Сохраните код восстановления в надёжном месте. Команда завершается ошибкой, если TOTP для пользователя уже включён.
  • show повторно выводит URL otpauth:// и QR-код либо TOTP disabled, если у пользователя TOTP не настроен.
  • disable удаляет проверку TOTP у пользователя. Команда завершается ошибкой, если TOTP не включён.

Издатель (issuer), отображаемый в приложениях-аутентификаторах, берётся из опции конфигурации mfa.totp.app_name (SEMAPHORE_TOTP_ISSUER). По умолчанию — Semaphore.