注意:以下命令需要 root 权限来执行,建议直接切换到 root 用户后再执行以下命令。
dv <子命令组> <操作> [参数] [选项]
dv 共 5 个公开子命令组(auth / domain / instance / audit / message)。
定位约定:除
create(安全域/实例创建)外,安全域一律按安全域编号DOM_xxx定位、
实例一律按实例编号INS_xxx定位,编号分别见dv domain list/dv instance list。名称
可能重复,故不再支持按名称或公钥定位。审核申请按申请编号APPLY_xxx(导出还需文件编号
FILE_xxx)定位,消息按消息编号MSG_xxx定位。
dv auth — 用户认证dv auth 不要求预先登录;其余子命令组执行前都会校验登录态。
| 操作 | 说明 | 参数 |
|---|---|---|
login |
用户登录 | 无。输出三方(Casdoor)登录链接,浏览器完成后在命令行粘贴授权码;已登录则直接返回当前用户 |
logout |
用户登出 | 无。清空当前环境会话,并清除本地缓存的 token / refresh token |
whoami |
查看当前登录用户 | 无。输出认证用户名与认证用户 ID |
dv domain — 安全域管理除 create 外均按安全域编号 DOM_xxx 定位。标 ✎ 的操作仅安全域创建者可执行。
| 操作 | 说明 | 主要参数 |
|---|---|---|
create |
创建安全域 | -n, --name(2~32 字符,中/英/数字/_/-,必填)、--payer 创建者|使用者(必填)、--desc(≤500)、--users u1,u2 |
list |
查看安全域列表 | --status running|closed、--archived(查看已归档)、--format table|json。列出「我创建的」与「共享给我的」安全域 |
show |
查看安全域详情 | --section info|users|instances|whitelist|exports|all(默认 all)。非创建者被强制限为 info 视图 |
update ✎ |
更新安全域描述 | --desc/--description(必填,≤500)。已关闭的安全域不可更新 |
close ✎ |
关闭安全域 | --force(跳过确认)。关闭后实例停止、加密文件无法继续访问 |
delete ✎ |
删除安全域 | --force(跳过确认) |
archive |
归档安全域 | 无。不改变状态,仅从默认列表移入归档视图 |
unarchive |
恢复已归档安全域 | 无 |
add-user ✎ |
添加可见用户 | -u, --user <用户账号>(必填)。已关闭的安全域不可添加 |
remove-user ✎ |
移除可见用户 | -u, --user <用户账号>(必填) |
encrypt |
加密文件至安全域 | -f, --file(必填)、-o, --output(默认源文件目录,文件名追加 .sealed)。安全域需处于运行中 |
dv instance — 安全域实例管理除 create 外均按实例编号 INS_xxx 定位。实例数据只允许存放于 LUKS 加密盘,解锁/挂载/内核
注册等特权操作全部由 root 守护进程执行。
| 操作 | 说明 | 主要参数 |
|---|---|---|
create |
创建安全域实例 | -d, --domain <DOM_xxx>(必填)、-n, --name(必填)、--disk <块设备>(必填,需未挂载/未占用)、--whitelist <主程序路径>。典枢安全域实例由后端自动授权并自动启动,命令会同步等待至运行中 |
list |
查看实例列表 | -d, --domain、--status pending|authorized|rejected|running、--format table|json。默认仅展示当前账号创建的实例 |
show |
查看实例详情 | --section info|whitelist|exports|all(默认 all)。非 info 视图会把已授权申请自动提交到内核 |
start |
启动安全域实例 | --force(跳过确认)。仅创建者、仅「已授权」实例可启动;解锁 LUKS 盘并挂载到 /mnt/<实例编号> |
delete |
删除安全域实例 | --force(跳过确认)。运行中实例会卸载并格式化加密盘,数据不可恢复 |
add-whitelist |
添加应用白名单 | -p, --path(必填,自动解析动态依赖)、--reason(≤500)。实例需运行中,提交后需审核 |
remove-whitelist |
移除应用白名单 | -p, --path <路径或名称>(必填)。同步移除内核白名单,需实例运行中 |
import |
导入文件到实例 | -f, --file(必填)。.sealed 文件用安全域私钥自动解密后写入挂载目录;实例需运行中 |
resolve |
解析路径所属实例 | <路径> [--format json]。判断路径是否为实例挂载路径;普通路径无需登录,供典枢客户端做导入前校验 |
export |
提交文件导出申请 | -f, --files <路径,路径...>(必填,逗号分隔)、--reason(≤500)。文件须位于实例挂载目录内,提交后需创建者审核 |
monitor |
实时监控实例运行态 | 无。订阅运行态流,实时打印状态与最近一次内核事件(Ctrl-C 退出) |
dv audit — 审核管理均需安全域创建者身份。审核动作统一用 --action approve|reject,reject 可带 --reason。
| 操作 | 说明 | 主要参数 |
|---|---|---|
list |
查看待审核列表 | --type instance|whitelist|export|all(默认 all)、--domain <DOM_xxx> |
instance |
审核实例化申请 | <实例编号> --action。实例需处于「待审核」,已关闭安全域不可再审核 |
instance-detail |
查看实例化申请详情 | <实例编号> |
whitelist |
审核应用白名单申请 | <申请编号 APPLY_xxx> --action |
whitelist-detail |
查看白名单申请详情 | <申请编号 APPLY_xxx> |
export |
审核导出申请 | <申请编号 APPLY_xxx> --file-code <FILE_xxx> --action。粒度为单个文件项,approve 时用安全域私钥生成 approveSign |
export-detail |
查看导出申请详情 | <申请编号 APPLY_xxx> --file-code <FILE_xxx> |
dv message — 消息中心| 操作 | 说明 | 主要参数 |
|---|---|---|
list |
查看消息列表 | --filter all|unread、--page(默认 1)、--size(默认 10)、--format。当前页已授权的白名单/导出消息会自动提交到内核 |
show |
查看消息详情 | <消息编号 MSG_xxx>。查看后若原为未读会自动标记为已读 |
read |
标记消息为已读 | <消息编号 MSG_xxx> |
read-all |
标记所有消息为已读 | 无 |
delete |
删除消息 | <消息编号 MSG_xxx> --force(跳过确认) |
全局选项可出现在子命令组之前或之后,对所有命令生效:
| 选项 | 说明 |
|---|---|
-h, --help |
显示帮助信息。dv --help → dv <组> --help → dv <组> <操作> --help 逐级细化 |
-v, --version |
显示版本信息 |
--format <table|json> |
输出格式,默认 table;主要影响 list / show 等列表与详情输出 |
--force |
跳过确认提示。非通用选项,仅在危险动作中生效:domain close、domain delete、instance start、instance delete、message delete |
补充说明:
dv --help)仅展示 -h、-v、--format 三项;--force--format json 除改变展示形式外,domain list 与 instance list 还会附带机器消费字段域类型、所属安全域编号、状态码、挂载点);instance resolve --format json 会在以下是一条从登录到日常运维的端到端流程;DOM_xxx / INS_xxx / APPLY_xxx 等编号均取自
对应的 list 输出。
# ── 登录 ──────────────────────────────────────────────
dv auth login # 输出三方登录链接,浏览器完成后粘贴授权码
# ── 安全域:创建者视角 ───────────────────────────────
dv domain create -n "研发数据域" --payer 创建者 --desc "研发敏感数据" --users alice,bob
dv domain list # 列出「我创建的」+「共享给我的」,取 DOM_xxx 编号
dv domain list --archived # 查看已归档安全域
dv domain show DOM_xxx --section users # 查看可见用户
dv domain update DOM_xxx --desc "新的描述"
dv domain add-user DOM_xxx -u carol # 追加可见用户
dv domain encrypt DOM_xxx -f /data/report.xlsx -o /tmp/out # 生成 report.xlsx.sealed
dv domain archive DOM_xxx # 归档(仅移出默认列表,不改变状态)
# ── 安全域实例:创建者视角 ───────────────────────────
# 实例数据只允许存放在 LUKS 加密盘;--disk 必须是未挂载/未占用的块设备
dv instance create -d DOM_xxx -n "开发实例1" --disk /dev/sdb1 --whitelist /usr/bin/python3
dv instance list # 取 INS_xxx 编号;默认仅当前账号创建的实例
dv instance start INS_xxx # 仅「已授权」可启动:解锁并挂载加密盘到 /mnt/<实例编号>
dv instance add-whitelist INS_xxx -p /usr/bin/python3 --reason "数据处理" # 需审核
dv instance import INS_xxx -f /data/report.xlsx.sealed # .sealed 自动解密后导入
dv instance export INS_xxx -f "/mnt/INS_xxx/result.csv" --reason "结果汇报" # 需审核
dv instance show INS_xxx --section exports # 查看导出申请,并自动提交已授权项到内核
dv instance monitor INS_xxx # 实时运行态与最近一次内核事件(Ctrl-C 退出)
dv instance delete INS_xxx # 运行中实例会卸载并格式化加密盘,数据不可恢复
# resolve 供典枢客户端等做导入前校验(普通路径无需登录)
dv instance resolve /mnt/INS_xxx --format json
# ── 审核:安全域创建者视角 ───────────────────────────
dv audit list # 待审核:实例化 / 白名单 / 导出
dv audit instance INS_xxx --action approve
dv audit whitelist APPLY_xxx --action reject --reason "不符合规范"
dv audit export APPLY_xxx --file-code FILE_xxx --action approve # 单文件粒度
# ── 消息中心:申请人视角 ─────────────────────────────
dv message list --filter unread # 已授权的白名单/导出消息会自动提交到内核
dv message read-all
0 成功1 一般错误(后端/SDK 操作失败、未知命令组)2 参数错误或未知操作3 未登录4 权限不足(非安全域创建者)5 目标不存在(安全域/实例/申请/消息)6 名称已被占用(domain create)7 状态不允许(已关闭/已审核等;instance resolve 中表示实例未运行)8 安全域类型不符(instance resolve:路径实例属于用户安全域而非典枢安全域)instance resolve <路径> --format json 的 stdout 最后一行为单行 JSON,reason 取值:ok / not_instance_path(退出码 5,普通路径,无需登录)/ unknown_instance_mount(退出码 5,形似实例挂载点但本地无记录)/ instance_not_running(退出码 7)/ not_dianshu_domain(退出码 8)。
domain list 与 instance list 的 --format json 额外附带机器消费字段(域类型、所属安全域编号、状态码、挂载点),表格输出不变。