跳转至

用户管理 CLI

服务端二进制不带子命令时仍按原方式启动 HTTPS 服务。以下命令连接 --config 指定的 PostgreSQL,完成操作后退出:

network_mapping_server --config config.toml user create alice --role user --email alice@example.com
network_mapping_server --config config.toml user password set alice
network_mapping_server --config config.toml user 2fa clear alice --yes
network_mapping_server --config config.toml user show alice --sessions active

源码构建环境可将上述 network_mapping_server 替换为 cargo run --。

密码与创建用户

user create 和 user password set 默认从终端隐藏读取密码并要求输入两次。密码长度为 12–256 个字符。不要在命令行参数中传递明文密码;自动化脚本应使用标准输入:

printf '%s\n' "$NEW_PASSWORD" | network_mapping_server user password set alice --password-stdin

也可以使用 --generate 生成随机密码。随机密码只在当前终端显示一次。修改密码会解除 密码错误锁定、重置错误次数,并使该用户现有会话全部失效。--role 只接受 admin 或 user,不能通过 CLI 创建内部 system 用户。

2FA 与登录白名单

清除 2FA 是破坏性操作:

network_mapping_server user 2fa clear alice
network_mapping_server user 2fa clear alice --yes       # 非交互环境

该操作会删除 TOTP 密钥和待绑定密钥,并使现有会话失效。

登录白名单支持 IPv4、IPv6 和 CIDR:

network_mapping_server user allowlist list alice
network_mapping_server user allowlist add alice 192.0.2.10 10.0.0.0/8 2001:db8::/32
network_mapping_server user allowlist remove alice 192.0.2.10
network_mapping_server user allowlist remove alice 10.0.0.0/8 --ignore-missing

地址会规范化、排序和去重;单个地址显示为 /32 或 /128。空白名单表示不限制来源, 每个用户最多保存 64 条。删除操作按规范化后的网络精确匹配。

登录限制

一次可以处理一个或多个逗号分隔的用户:

network_mapping_server user login restrict --users alice,bob
network_mapping_server user login restrict --users alice,bob --dry-run
network_mapping_server user login unrestrict --users alice,bob

批量操作是原子的:用户名不存在时全部回滚。限制登录使用管理员禁用状态,不会篡改密码 错误锁定状态;限制时会使现有会话失效。系统拒绝限制最后一个仍可登录的管理员。

用户与登录记录查询

network_mapping_server user show alice --sessions active  # active、all 或 none
network_mapping_server user login-log alice --outcome failure --since 7d --limit 200
network_mapping_server user login-log alice --since 2026-09-01T00:00:00Z --format json --pager never
network_mapping_server user login-log alice --all --format csv --pager always

登录记录来自统一的 audit_event,支持 --outcome success|failure、RFC3339 起止时间, 以及 Nd、Nh、Nm 形式的相对起始时间。默认显示最新 100 条。表格超过 24 行且输出到 终端时会调用 $PAGER(默认 less);JSON/CSV 可直接重定向。用户信息不会显示 session token 或 CSRF token。

所有 CLI 写操作及登录记录读取都会写入审计表,操作者类型为 system、名称为 cli; 审计内容不包含明文密码、密码哈希、TOTP 密钥或会话令牌。