菜单

Linux命令行工具使用说明

数据安全柜命令行工具(dv)使用说明

1. 命令结构

bash 复制代码
dv <子命令组> <操作> [参数] [选项]

根帮助页当前展示的子命令组:

  • auth:用户认证
  • domain:安全域管理
  • instance:安全域实例管理
  • audit:审核管理
  • message:消息中心

2. 全局选项

根帮助页当前列出的全局选项如下:

  • -h, --help:显示帮助信息
  • -v, --version:显示版本信息
  • --format <table|json>:输出格式,默认 table
  • --no-color:禁用彩色输出
  • -q, --quiet:静默模式
  • --debug:调试模式

补充说明:

  • --force 不是根帮助页列出的通用选项;当前实现只在需要确认交互的具体命令中使用,例如 dv domain closedv instance deletedv message delete
  • --format json 主要对列表类和表格类输出生效,是否使用该选项以具体动作帮助和实现为准。

3. 通用行为

  • dv auth ... 外,其余命令默认要求已登录。
  • 当前登录态以 auth_user_id 为准;用户展示名优先取本地缓存中的 auth_user_name
  • 涉及详情刷新、审核流、消息同步、实例运行等操作时,通常依赖后端接口和当前用户 token。
  • dv domain show 对非安全域创建者会强制退化为 info 视图;只有创建者才能查看实例、白名单、导出等扩展信息。
  • 根帮助、子命令组帮助、动作帮助与实现偶尔会有轻微漂移;本文档以“动作帮助 + 当前实现”共同校准。

4. 用户认证(dv auth

4.1 用户登录

bash 复制代码
dv auth login

参数说明:

  • 无额外参数。

必要说明:

  • 命令会输出 Casdoor 登录链接,并要求在命令行中输入授权码。
  • 登录成功后,会为当前 auth_user_id 打开对应的用户数据库,并把 auth_user_id 写入 ~/.dv/session
  • 如果当前已经登录,会直接提示当前认证用户并返回,不重复发起登录流程。

示例:

bash 复制代码
dv auth login

4.2 用户登出

bash 复制代码
dv auth logout

参数说明:

  • 无额外参数。

必要说明:

  • 当前未登录时会提示“当前未登录”并返回。
  • 登出会清空当前 session,并清除本地缓存的 token。

示例:

bash 复制代码
dv auth logout

4.3 查看当前用户

bash 复制代码
dv auth whoami

参数说明:

  • 无额外参数。

必要说明:

  • 当前实现输出的是认证用户名、认证用户 ID 和一行时间信息。
  • 若当前未登录,会提示使用 dv auth login 登录。

示例:

bash 复制代码
dv auth whoami

5. 安全域管理(dv domain

5.1 创建安全域

bash 复制代码
dv domain create -n <名称> --payer <创建者|使用者> [--desc <描述>] [--users <u1,u2>]

参数说明:

  • -n, --name <名称>:安全域名称,必填,长度 2 到 32,仅支持中文、英文、数字、_-
  • --payer <创建者|使用者>:费用承担方,必填
  • --desc <描述>:安全域描述,可选,最多 500 个字符
  • --description <描述>--desc 的别名
  • --users <u1,u2>:可见用户列表,逗号分隔

必要说明:

  • 创建时会生成安全域密钥对。
  • 若后端接口启用,会调用后端创建安全域,并把完整详情回写到本地缓存。
  • 同名安全域会报错。

示例:

bash 复制代码
dv domain create -n "研发数据域" --payer 创建者 --desc "研发敏感数据" --users alice,bob

5.2 查看安全域列表

bash 复制代码
dv domain list [--status <running|closed>] [--format <table|json>]

参数说明:

  • --status <running|closed>:按状态筛选
  • --format <table|json>:输出格式

必要说明:

  • 列表会展示“我创建的安全域”和“他人创建但共享给我的安全域”。
  • 列表输出会尽量从后端刷新状态和可见范围;若刷新失败,则退回本地缓存。

示例:

bash 复制代码
dv domain list --status running

5.3 查看安全域详情

bash 复制代码
dv domain show <安全域名称|安全域编号|公钥> [--section <info|users|instances|whitelist|exports|all>]

参数说明:

  • <安全域名称|安全域编号|公钥>:安全域标识,必填
  • --section <info|users|instances|whitelist|exports|all>:仅显示指定部分,默认 all

必要说明:

  • info:基本信息
  • users:可见用户列表
  • instances:安全域实例列表
  • whitelist:应用白名单申请列表
  • exports:文件导出申请列表
  • 非安全域创建者会被强制限制为 info 视图

示例:

bash 复制代码
dv domain show "研发数据域" --section whitelist

5.4 更新安全域描述

bash 复制代码
dv domain update <安全域名称|安全域编号|公钥> --desc <描述>

参数说明:

  • <安全域名称|安全域编号|公钥>:安全域标识,必填
  • --desc <描述>:安全域描述,必填,最多 500 个字符
  • --description <描述>--desc 的别名

必要说明:

  • 仅安全域创建者可更新描述。
  • 描述不能为空,不能是纯空白内容。

示例:

bash 复制代码
dv domain update "研发数据域" --desc "更新后的描述"

5.5 关闭安全域

bash 复制代码
dv domain close <安全域名称|安全域编号|公钥> [--force]

参数说明:

  • <安全域名称|安全域编号|公钥>:安全域标识,必填
  • --force:跳过确认提示

必要说明:

  • 仅安全域创建者可关闭安全域。
  • 默认会弹出确认提示;使用 --force 时直接执行。
  • 帮助文案明确提示:关闭安全域后,相关实例会停止,加密文件无法继续访问。

示例:

bash 复制代码
dv domain close "研发数据域" --force

5.6 添加可见用户

bash 复制代码
dv domain add-user <安全域名称|安全域编号|公钥> -u <用户账号>

参数说明:

  • <安全域名称|安全域编号|公钥>:安全域标识,必填
  • -u, --user <用户账号>:要添加的用户账号,必填

必要说明:

  • 仅安全域创建者可添加可见用户。
  • 当前实现会优先用本地用户缓存匹配账号;后端启用时也会尝试补全远端身份信息。

示例:

bash 复制代码
dv domain add-user "研发数据域" -u alice

5.7 移除可见用户

bash 复制代码
dv domain remove-user <安全域名称|安全域编号|公钥> -u <用户账号>

参数说明:

  • <安全域名称|安全域编号|公钥>:安全域标识,必填
  • -u, --user <用户账号>:要移除的用户账号,必填

必要说明:

  • 仅安全域创建者可移除可见用户。

示例:

bash 复制代码
dv domain remove-user "研发数据域" -u alice

5.8 加密文件至安全域

bash 复制代码
dv domain encrypt <安全域名称|安全域编号|公钥> -f <文件路径> [-o <输出路径>]

参数说明:

  • <安全域名称|安全域编号|公钥>:目标安全域标识,必填
  • -f, --file <文件路径>:要加密的文件路径,必填
  • -o, --output <输出路径>:输出路径,默认 <原文件名>.sealed

必要说明:

  • 安全域必须处于“运行中”状态。
  • 若不指定输出路径,命令会按默认规则生成 .sealed 文件。

示例:

bash 复制代码
dv domain encrypt "研发数据域" -f /data/report.xlsx -o /data/report.xlsx.sealed

6. 安全域实例管理(dv instance

6.1 创建安全域实例

bash 复制代码
dv instance create -d <安全域名称|安全域编号|公钥> -n <实例名称> --disk <磁盘路径> [--whitelist <路径>]

参数说明:

  • -d, --domain <安全域>:所属安全域,必填
  • -n, --name <名称>:实例名称,必填
  • --disk <路径>:磁盘分区路径,必填
  • --whitelist <路径>:应用白名单主程序路径,可选

必要说明:

  • 只有“运行中”的安全域才能创建实例。
  • 当前实现会读取磁盘分区信息,校验底层卷 UUID 是否已经被其他实例占用。
  • --whitelist 当前只支持一个主程序路径;若主程序存在依赖,创建流程会自动生成附带的白名单申请文件列表。

示例:

bash 复制代码
dv instance create -d "研发数据域" -n "开发实例1" --disk /data/safebox --whitelist /usr/bin/ls

6.2 查看实例列表

bash 复制代码
dv instance list [-d <安全域>] [--status <pending|authorized|rejected|running|expired|closed>] [--format <table|json>]

参数说明:

  • -d, --domain <安全域>:按安全域筛选
  • --status <pending|authorized|rejected|running|expired|closed>:按实例状态筛选
  • --format <table|json>:输出格式

必要说明:

  • 默认只展示当前账号创建的安全域实例。
  • 动作帮助页当前只打印了 running/closed/pending 这几个常用状态;实现里实际还支持 authorizedrejectedexpired

示例:

bash 复制代码
dv instance list --status authorized

6.3 查看实例详情

bash 复制代码
dv instance show <实例名称或编号> [--section <info|whitelist|exports|all>]

参数说明:

  • <实例名称或编号>:实例标识,必填
  • --section <info|whitelist|exports|all>:只显示指定部分,默认 all

必要说明:

  • 当前实现会调用后端详情接口刷新实例状态。
  • whitelist 显示应用白名单申请记录。
  • exports 显示文件导出申请记录。

示例:

bash 复制代码
dv instance show "开发实例1" --section exports

6.4 启动安全域实例

bash 复制代码
dv instance start <实例名称或编号> [--domain-key <base64>] [--force]

参数说明:

  • <实例名称或编号>:实例标识,必填
  • --domain-key <base64>:保存到实例 extra.forwarded_skey 的 base64 字符串
  • --force:跳过确认提示

必要说明:

  • 只有实例创建者才能启动实例。
  • 只有状态为“已授权”的实例才能启动。
  • 默认会显示启动确认信息;使用 --force 时跳过确认。
  • --domain-key 仅保存密文,启动时解密到内存中使用。
  • 启动会把实例注册到 trammel 内核模块,并调用后端 /api/instance/run

示例:

bash 复制代码
dv instance start "开发实例1" --domain-key "BASE64_SKEY" --force

6.5 删除安全域实例

bash 复制代码
dv instance delete <实例名称或编号> [--force]

参数说明:

  • <实例名称或编号>:实例标识,必填
  • --force:跳过确认提示

必要说明:

  • 只有实例创建者才能删除实例。
  • 默认会警告“实例内所有数据将无法恢复”,然后要求确认。

示例:

bash 复制代码
dv instance delete "开发实例1" --force

6.6 添加应用白名单

bash 复制代码
dv instance add-whitelist <实例名称或编号> -p <应用路径> [--reason <申请原因>]

参数说明:

  • <实例名称或编号>:实例标识,必填
  • -p, --path <应用路径>:要添加的应用路径,必填
  • --reason <申请原因>:申请原因,可选,最多 500 个字符

必要说明:

  • 只有实例创建者才能修改应用白名单。
  • 实例必须处于“运行中”状态。

示例:

bash 复制代码
dv instance add-whitelist "开发实例1" --path /usr/bin/python3 --reason "研发脚本执行"

6.7 移除应用白名单

bash 复制代码
dv instance remove-whitelist <实例名称或编号> -p <应用路径或名称>

参数说明:

  • <实例名称或编号>:实例标识,必填
  • -p, --path <应用路径或名称>:要移除的应用路径或名称,必填

必要说明:

  • 只有实例创建者才能修改应用白名单。
  • 实例必须处于“运行中”状态。

示例:

bash 复制代码
dv instance remove-whitelist "开发实例1" --path python3

6.8 导入文件至实例

bash 复制代码
dv instance import <实例名称或编号> -f <文件路径>

参数说明:

  • <实例名称或编号>:实例标识,必填
  • -f, --file <文件路径>:要导入的文件路径,必填

必要说明:

  • 实例必须处于“运行中”状态。
  • 如果文件名以 .sealed 结尾,会先解密再导入;否则直接复制到实例路径。
  • 动作帮助中保留了多 -f 示例,但当前实现实际只读取一个 -f/--file 值;请一次导入一个文件。

示例:

bash 复制代码
dv instance import "开发实例1" -f /tmp/report.xlsx.sealed

6.9 申请导出文件

bash 复制代码
dv instance export <实例名称或编号> -f <文件路径列表> [--reason <导出原因>]

参数说明:

  • <实例名称或编号>:实例标识,必填
  • -f <文件路径列表>:要导出的文件列表,必填
  • --files <文件路径列表>-f 的长选项形式
  • --reason <导出原因>:导出原因,可选,最多 500 个字符

必要说明:

  • 实例必须处于“运行中”状态。
  • 当前实现从一个选项值中解析文件列表,按逗号分隔多个路径,例如 -f "/a,/b"--files "/a,/b"
  • 动作帮助中的“可多次指定”来自帮助文案,但当前解析器实际会以最后一个值为准,因此不建议重复写多个 -f
  • 导出申请提交后需要安全域创建者审核。

示例:

bash 复制代码
dv instance export "开发实例1" --files "/data/report.pdf,/data/result.csv" --reason "项目汇报"

6.10 提交授权申请到内核白名单

bash 复制代码
dv instance submit <实例编号> --apply-code <申请编号>

参数说明:

  • <实例编号>:实例编号,必填
  • --apply-code <申请编号>:授权申请编号,必填,支持应用白名单申请和文件导出申请

必要说明:

  • 命令会校验申请文件项中的 approve_sig
  • 文件导出申请只会提交状态为“已授权”的文件;待审核和已拒绝文件会跳过。
  • 应用白名单申请仍要求整单已授权,并只对首个文件项写入内核应用白名单。

示例:

bash 复制代码
dv instance submit I17736332200549411 --apply-code A17736445887554824

7. 审核管理(dv audit

7.1 查看待审核列表

bash 复制代码
dv audit list [--type <instance|whitelist|export|all>] [--domain <安全域>]

参数说明:

  • --type <instance|whitelist|export|all>:审核类型,默认 all
  • --domain <安全域>:按安全域筛选

必要说明:

  • instance:实例化申请
  • whitelist:应用白名单申请
  • export:文件导出申请

示例:

bash 复制代码
dv audit list --type whitelist

7.2 查看实例化申请详情

bash 复制代码
dv audit instance-detail <实例编号>

示例:

bash 复制代码
dv audit instance-detail I17726096359687372

7.3 审核实例化申请

bash 复制代码
dv audit instance <实例编号> --action <approve|reject>

参数说明:

  • --action <approve|reject>:审核动作,必填

示例:

bash 复制代码
dv audit instance I17726096359687372 --action approve

7.4 查看应用白名单申请详情

bash 复制代码
dv audit whitelist-detail <申请编号>

示例:

bash 复制代码
dv audit whitelist-detail A17736720770637258

7.5 审核应用白名单申请

bash 复制代码
dv audit whitelist <申请编号> --action <approve|reject>

示例:

bash 复制代码
dv audit whitelist A17736720770637258 --action reject

7.6 查看导出申请详情

bash 复制代码
dv audit export-detail <申请编号> --file-code <文件编号>

参数说明:

  • --file-code <文件编号>:指定要查看的文件编号,必填

示例:

bash 复制代码
dv audit export-detail A17735869339174558 --file-code F17735869339170001

7.7 审核导出申请

bash 复制代码
dv audit export <申请编号> --file-code <文件编号> --action <approve|reject>

参数说明:

  • --file-code <文件编号>:指定要审核的文件编号,必填
  • --action <approve|reject>:审核动作,必填

示例:

bash 复制代码
dv audit export A17735869339174558 --file-code F17735869339170001 --action approve

8. 消息中心(dv message

8.1 查看消息列表

bash 复制代码
dv message list [--filter <all|unread>] [--page <页码>] [--size <每页数量>] [--format <table|json>]

参数说明:

  • --filter <all|unread>:过滤条件,默认 all
  • --page <页码>:页码,默认 1
  • --size <每页数量>:每页数量,默认 10
  • --format <table|json>:输出格式

必要说明:

  • 当前实现会先调用后端消息列表接口,再从本地数据库读取并显示消息。
  • unread 仅显示未读消息。

示例:

bash 复制代码
dv message list --filter unread --format json

8.2 查看消息详情

bash 复制代码
dv message show <消息编号>

必要说明:

  • 查看详情后,如果消息原本未读,会自动标记为已读。
  • 当消息事件为 MSG_CREATE_INSTANCE_PASS 时,会额外显示“转发私钥”字段。

示例:

bash 复制代码
dv message show M17726119432052285

8.3 标记消息为已读

bash 复制代码
dv message read <消息编号>

示例:

bash 复制代码
dv message read M17726119432052285

8.4 标记所有消息为已读

bash 复制代码
dv message read-all

示例:

bash 复制代码
dv message read-all

8.5 删除消息

bash 复制代码
dv message delete <消息编号> [--force]

参数说明:

  • --force:跳过确认提示

必要说明:

  • 默认会要求确认;使用 --force 时直接删除。

示例:

bash 复制代码
dv message delete M17726119432052285 --force

9. 常见返回码

  • 0:成功
  • 1:一般错误、后端错误或数据库错误
  • 2:参数错误或输入校验失败
  • 3:未登录
  • 4:权限不足
  • 5:资源不存在
  • 6:资源冲突或已存在
  • 7:当前状态不允许执行该操作
  • 9:文件相关错误
最近修改: 2026-03-30