跳到主要内容

用户

semaphore users 命令用于添加、修改、删除和查看用户,并管理用户的 API 令牌和 TOTP(双因素认证)验证。

semaphore users --help

user 是 users 的别名。

命令用途
users add创建用户。
users change-by-login更新按登录名查找到的用户。
users change-by-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用户的显示名称。必填。
--email用户的邮箱。必填。
--password用户的密码。普通用户必填;外部用户不允许指定。
--admin将新用户标记为管理员。
--external将新用户标记为外部用户(LDAP 或 OIDC)。外部用户不能指定 --password。

成功后,命令会打印 User <login> <email> added!。

修改用户​

可以按登录名或按邮箱查找要修改的用户。

# 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,是要查找的用户的邮箱(必填)。对于 change-by-login,是用户的新邮箱。
--name用户的新名称。
--password用户的新密码。
--admin授予管理员权限。

只有你提供的选项才会被应用;省略的字段保持不变。 --admin 只能授予管理员权限,不能撤销;如需撤销,请使用 Web 界面。

查看用户​

按登录名或邮箱查找并打印单个用户的详细信息。

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

--login 和 --email 至少需要指定一个。输出包括用户的 ID、创建时间、 登录名、名称、邮箱和管理员状态。如果没有匹配的用户,命令会打印一条 消息并以非零状态退出。

列出用户​

打印所有用户的登录名,每行一个。

semaphore user list

删除用户​

按登录名或邮箱查找并删除用户。

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

--login 和 --email 至少需要指定一个。

API 令牌管理​

通过 CLI 管理用户的 API 令牌:

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 时长格式(例如 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 管理​

通过 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 会打印一个一次性恢复码、otpauth:// URL 以及一个可扫描的 二维码。请将恢复码保存在安全的地方。如果该用户已启用 TOTP,命令 会失败。
  • show 会再次打印 otpauth:// URL 和二维码;如果用户未设置 TOTP, 则打印 TOTP disabled。
  • disable 会移除用户的 TOTP 验证。如果 TOTP 未启用,命令会失败。

身份验证器应用中显示的签发者取自 mfa.totp.app_name 配置选项(SEMAPHORE_TOTP_ISSUER),默认为 Semaphore。