diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 Binary files /dev/null and b/.DS_Store differ diff --git a/README.md b/README.md index 783b75a550891008ad9e9c43d71af1c3c10f45b0..d6e92c5e811df6a505b3922ab27e43132e07f218 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,18 @@ openEuler Docs 仓旨在为帮助社区用户快速了解 openEuler 各类项目,本仓包含了 openEuler 社区的所有文档,包括发行说明、操作系统安装、管理员指南、虚拟化和容器的使用指导等内容。 +## 仓库 + +openEuler 官方文档存储于 openeuler/docs 仓和 openeuler/docs-centralized 仓: + +- docs 仓则用于存放基于SIG组下沉机制管理的文档; +- docs-centralized 仓用于存放集中管理模式的文档(旧版的文档管理方式)。 + +| 仓库 | openEuler 版本 | +|-----|----| +| openeuler/docs | openEuler 24.03 LTS SP2、openEuler 25.03、openEuler 24.03 LTS SP1| +| openeuler/docs-centralized | master、openEuler 24.03 LTS SP1、openEuler 24.09、openEuler 22.03 LTS SP4、openEuler 24.03 LTS、openEuler 22.03 LTS SP3、openEuler 20.03 LTS SP4、openEuler 23.09、openEuler 22.03 LTS SP2、openEuler 23.03、openEuler 22.03 LTS SP1、openEuler 22.09、openEuler 22.03 LTS、openEuler 20.03 LTS SP3、openEuler 21.09、openEuler 20.03 LTS SP2、openEuler 21.03、openEuler 20.03 LTS SP1、openEuler 20.09、openEuler 20.03 LTS | + ## 如何查看版本分支对应关系 openEuler 目前提供以下两类版本: @@ -13,50 +25,474 @@ openEuler 目前提供以下两类版本: - 长期支持 (LTS)版本:openEuler 发布间隔周期定为2年,提供4年社区支持,在较长的时间内获得安全、维护和功能的更新。 - 社区创新版本:每隔6个月会发布一个社区创新版本,具有最新的硬软件支持。 -Docs 当前使用以下三类分支,长期支持版本和社区创新版本分别以 20.03 LTS SP3 和 21.09 为例: +Docs 当前使用以下三类分支,长期支持版本和社区创新版本分别以 22.03 LTS SP3 和 24.09 为例: | 分支 | 说明 | 内容呈现 | |-----|----|----| | master | 开发分支,为默认分支|-| -| stable2-20.03_LTS_SP3 | 20.03 LTS 版本 SP3 版本分支 | 分支内容呈现在[openEuler社区](https://openeuler.org/)网站“文档->20.03 LTS SP3” | -| stable2-21.09 | 21.09 版本分支 | 分支内容呈现在[openEuler社区](https://openeuler.org/)网站“文档->21.09” | +| stable2-22.03_LTS_SP3 | 22.03 LTS 版本 SP3 版本分支 | 分支内容呈现在[openEuler社区](https://openeuler.org/)网站“文档->22.03 LTS SP3” | +| stable2-24.09 | 24.09 版本分支 | 分支内容呈现在[openEuler社区](https://openeuler.org/)网站“文档->24.09” | ## 资料清单 -| 文档名称 | 开发类型 | 文件夹 | -|-----|----|----| -| 法律声明 | 更新 | Releasenotes | -| 发行说明 | 更新 | Releasenotes | -| 快速入门 | 更新 | Quickstart | -| 安装指南 | 更新 | Installation | -| 管理员指南 | 更新 | Administration | -| 安全加固指南 | 更新 | SecHarden | -| 虚拟化用户指南 | 更新 | Virtualization | -| StratoVirt用户指南 | 更新 | StratoVirt | -| 容器用户指南 | 更新 | Container | -| A-Tune 用户指南 | 更新 | A-Tune | -| Embedded 用户指南 | 新增 | Embedded | -| 内核热升级指南 | 更新 | KernelLiveUpgrade | -| 应用开发指南 | 更新 | ApplicationDev | -| secGear 开发指南 | 更新 | secGear | -| Kubernetes 集群部署指南 | 更新 | Kubernetes | -| 第三方软件安装指南 | 更新 | thirdparty_migration | -| 桌面环境用户指南 | 更新 | desktop | -| 工具集用户指南 | 更新 | userguide | -| A-Ops用户指南 | 更新 | A-Ops | -| 容器OS升级指南 | 新增 | KubeOS | - -## 如何在Docs中查找文档 - -进入[Docs 仓](https://gitee.com/openeuler/docs), 选择 stable2-21.09 分支,进入 “docs” 文件夹,该文件夹包含了中文(“zh”文件夹)和英文(“en”文件夹)两种语言文档,以中文文档举例进行说明。在“zh”文件夹中,“docs”文件夹包含了文档的内容,“menu”展示了具体文档与 Docs 官网目录的映射关系。 “docs” 文件夹与各手册的对应关系可参考资料清单。 - -## 如何修改文档 - -当openEuler版本信息有刷新时,这里文档也需要刷新。很感谢您愿意提供刷新内容。 -请阅读[openEuler 开源社区贡献指南](https://gitee.com/openeuler/docs/blob/master/contribute/openEuler%E5%BC%80%E6%BA%90%E7%A4%BE%E5%8C%BA%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%8D%97.md)进行操作参考。 +### 服务器 + +
| 场景 | +类别 | +手册 | +存放地址 | +
|---|---|---|---|
| 虚拟化 | +虚拟化平台 | +虚拟化用户指南 | +docs/zh/virtualization/virtualization_platform/virtualization | +
| StratoVirt用户指南 | +docs/zh/virtualization/virtualization_platform/stratovirt | +||
| OpenStack用户手册 | +openstack-docs/docs/zh | +
| 场景 | +类别 | +手册 | +存放地址 | +
|---|---|---|---|
| 云原生 | +容器引擎 | +iSula容器引擎 | +docs/zh/cloud/container_engine/isula_container_engine | +
| Docker容器 | +docs/zh/cloud/container_engine/docker_engine | +||
| 容器形态 | +安全容器 | +docs/zh/cloud/container_form/secure_container | +|
| 系统容器 | +docs/zh/cloud/container_form/system_container | +||
| 容器运行时 | +Kuasar多沙箱容器运行时 | +docs/zh/cloud/container_runtime/kuasar | +|
| 容器镜像构建工具 | +容器镜像构建 | +docs/zh/cloud/image_builder/isula-build | +|
| 云原生操作系统 | +容器OS升级用户指南 | +docs/zh/cloud/kubeos/kubeos | +|
| 云底座操作系统 | +NestOS用户指南 | +docs/zh/cloud/nestosS/nestos | +|
| 混合部署 | +云原生混合部署rubik用户指南 | +docs/zh/cloud/hybrid_deployment/rubik | +|
| oncn-bwm用户指南 | +docs/zh/cloud/hybrid_deployment/oncn-bwm | +||
| 集群部署 | +Kubernetes集群部署指南 | +docs/zh/cloud/cluster_deployment/kubernetes | +|
| iSulad+k8s集群部署指南 | +docs/zh/cloud/cluster_deployment/isulad+k8s | +||
| 服务网格 | +Kmesh用户指南 | +docs/zh/cloud/kmesh/kmesh | +
| 场景 | +类别 | +手册 | +存放地址 | +
|---|---|---|---|
| 边缘计算 | +/ | +KubeEdge部署指南 | +docs/zh/edge_computing/kube_edge | +
| K3s部署指南 | +docs/zh/edge_computing/k3s | +
| 场景 | +类别 | +手册 | +存放地址 | +
|---|---|---|---|
| 嵌入式 | +/ | +openEuler Embedded用户指南 | +yocto-meta-openeuler/docs | +
| UniProton用户指南 | +docs/zh/embedded/uniproton | +
| Parameter | +Value | +Function | +
|---|---|---|
| ima_appraise | +enforce-evm | +Enforced verification mode of IMA appraisal (EVM enabled) | +
| log-evm | +Log mode of IMA appraisal (EVM enabled) | +|
| enforce | +Enforced verification mode of IMA appraisal | +|
| log | +Log mode of IMA appraisal | +|
| off | +IMA appraisal disabled | +|
| ima_appraise_digest_list | +digest | +IMA+EVM appraisal based on the digest list (comparing file content and extended attributes) | +
| digest-nometadata | +IMA appraisal based on the digest list (comparing file content only) | +|
| evm | +x509 | +Directly enables EVM based on portable signatures (whether or not the EVM certificate is loaded) | +
| complete | +Does not allow modification of EVM mode through the securityfs interface after startup | +|
| allow_metadata_writes | +Allows modification of file metadata without EVM interception | +|
| ima_hash | +sha256/sha1/... | +Declares the IMA measurement hash algorithm | +
| ima_template | +ima | +Declares the IMA measurement template (d|n) | +
| ima-ng | +Declares the IMA measurement template (d-ng|n-ng), which is used by default | +|
| ima-sig | +Declares the IMA measurement template (d-ng|n-ng|sig) | +|
| ima_policy | +exec_tcb | +Measures all executed and memory-mapped files, as well as loaded kernel modules, firmware, and kernel files | +
| tcb | +On the basis of the exec_tcb policy, additionally measures files accessed as uid=0 or euid=0 | +|
| secure_boot | +Evaluates all loaded kernel modules, firmware, and kernel files, and specifies the use of IMA signature mode | +|
| appraise_exec_tcb | +On the basis of the secure_boot policy, additionally evaluates all executed and memory-mapped files | +|
| appraise_tcb | +Evaluates all files accessed with owner 0 | +|
| appraise_exec_immutable | +Used in conjunction with the appraise_exec_tcb policy where the extended attributes of executable files are immutable | +|
| ima_digest_list_pcr | +10 | +Extends the digest list-based IMA measurement results in PCR 10, disabling native IMA measurement | +
| 11 | +Extends the digest list-based IMA measurement results in PCR 11, disabling native IMA measurement | +|
| +11 | +Extends the digest list-based IMA measurement results in PCR 11, extending the native IMA measurement results in PCR 10 | +|
| ima_digest_db_size | +nn[M] | +Sets the upper limit of the kernel digest list size (0 MB to 64 MB). The default is 16 MB if not configured. (Not configured means that the parameter does not present. Note that the value cannot be left blank, such as "ima_digest_db_size=") | +
| ima_capacity | +-1~2147483647 | +Sets the maximum number of kernel measurement log entries. The default is 100,000 if not configured. -1 means no upper limit. | +
| initramtmpfs | +None | +Supports tmpfs in initrd to carry file extended attributes | +
| Option | +Value | +Function | +
|---|---|---|
| -d | +<path> | +Specifies the directory to store the generated digest list files. The value must be a valid directory. | +
| -f | +compact | +Specifies the format of the generated digest list files. Currently, only the compact format is supported. | +
| -i | +<option arg>:<option value> | +Specifies the target file range for generating the digest list. Specific parameter definitions are as follows. | +
| I:<path> | +Specifies the absolute path of the file for which to generate a digest list. If a directory is specified, recursive generation is performed. | +|
| E:<path> | +Specifies the path or directory to exclude. | +|
| F:<path> | +Specifies the path or directory for which to generate digest lists for all files (when the e: parameter is also specified, the filtering effect of the e: option is ignored). | +|
| e: | +Generates a digest list only for executable files. | +|
| l:policy | +Matches file security contexts from the system SELinux policy instead of reading them directly from file extended attributes. | +|
| i: | +When generating a metadata digest list, includes the digest value of the file in the calculated extended attribute information (required). | +|
| M: | +Allows explicitly specifying the file extended attribute information (must be used with the rpmbuild command). | +|
| u: | +Uses the list file name specified by the L: parameter as the file name for generating the digest list (must be used with the rpmbuild command). | +|
| L:<path> | +Specifies the path of the list file, which contains the information data needed to generate the digest list (must be used with the rpmbuild command). | +|
| -o | +add | +Specifies the operation to perform on the generated digest list. Currently, only the add operation is supported, which adds the digest list to the file. | +
| -p | +-1 | +Specifies the position in the file where the digest list is written. Currently, only -1 is supported. | +
| -t | +file | +Generates a digest list only for the file content. | +
| metadata | +Generates separate digest lists for the file content and extended attributes. | +|
| -T | +NA | +If this parameter is not added, a digest list file is generated. If this parameter is added, a TLV digest list file is generated. | +
| -A | +<path> | +Specifies the relative root directory. The file path is truncated with the specified prefix removed for path matching and SELinux label matching. | +
| -m | +immutable | +Specifies the modifiers attribute of the generated digest list file. Currently, only immutable is supported. In enforce/enforce-evm mode, the digest list can only be opened in read-only mode. | +
| -h | +NA | +Prints help information. | +
| Keyword | +Value | +Description | +
|---|---|---|
| action | +measure | +Enables IMA measurement. | +
| dont_measure | +Disables IMA measurement. | +|
| appraise | +Enables IMA appraisal. | +|
| dont_appraise | +Disables IMA appraisal. | +|
| audit | +Enables auditing. | +|
| func | +FILE_CHECK | +File to be opened | +
| MODULE_CHECK | +Kernel module file to be loaded | +|
| MMAP_CHECK | +Shared library file to be mapped to the process memory space | +|
| BRPM_CHECK | +Executable file to be executed (excluding script files opened by programs like /bin/hash) |
+|
| POLICY_CHECK | +IMA policy file to be imported | +|
| FIRMWARE_CHECK | +Firmware to be loaded into memory | +|
| DIGEST_LIST_CHECK | +Digest list file to be loaded into the kernel | +|
| KEXEC_KERNEL_CHECK | +Kernel to be switched to by kexec | +|
| mask | +MAY_EXEC | +Execute file | +
| MAY_WRITE | +Write file | +|
| MAY_READ | +Read file | +|
| MAY_APPEND | +Extend file attributes | +|
| fsmagic | +fsmagic=xxx | +Hexadecimal magic number of the file system type | +
| fsuuid | +fsuuid=xxx | +16-character hexadecimal string of the system device UUID | +
| fowner | +fowner=xxx | +User ID of the file owner | +
| uid | +uid=xxx | +User ID of the user operating on the file | +
| obj_type | +obj_type=xxx_t | +Type of the file (based on SELinux label) | +
| pcr | +pcr= |
+TPM PCR used for extending measurement values (default is 10) | +
| appraise_type | +imasig | +IMA appraisal based on signature | +
| meta_immutable | +Appraisal of file extended attributes based on signature (digest list supported) | +
| Version | +Certificate | +
|---|---|
| openEuler 22.03 LTS | +private OBS b25e7f66 | +
| openEuler 22.03 LTS SP1/2/3 | +private OBS b25e7f66 | +
| openeuler <openeuler@compass-ci.com> b675600b | +|
| openEuler 22.03 LTS SP4 | +private OBS b25e7f66 | +
| openeuler <openeuler@compass-ci.com> b675600b | +|
| openeuler <openeuler@compass-ci.com> fb37bc6f | +|
| openEuler 24.03 LTS | +openEuler kernel ICA 1: 90bb67eb4b57eb62bf6f867e4f56bd4e19e7d041 | +
| 参数名称 | +取值 | +功能 | +
|---|---|---|
| ima_appraise | +enforce-evm | +IMA评估强制校验模式(EVM开启) | +
| log-evm | +IMA评估日志模式(EVM开启) | +|
| enforce | +IMA评估强制校验模式 | +|
| log | +IMA评估日志模式 | +|
| off | +关闭IMA评估 | +|
| ima_appraise_digest_list | +digest | +基于摘要列表进行IMA+EVM评估(比较文件内容和扩展属性) | +
| digest-nometadata | +基于摘要列表进行IMA评估(只比较文件内容) | +|
| evm | +x509 | +直接开启基于可移植签名的EVM(无论EVM证书是否加载) | +
| complete | +启动后不允许通过securityfs接口修改EVM模式 | +|
| allow_metadata_writes | +允许修改文件元数据,EVM不做拦截 | +|
| ima_hash | +sha256/sha1/... | +声明IMA度量哈希算法 | +
| ima_template | +ima | +声明IMA度量模板(d|n) | +
| ima-ng | +声明IMA度量模板(d-ng|n-ng),默认使用该模板 | +|
| ima-sig | +声明IMA度量模板(d-ng|n-ng|sig) | +|
| ima_policy | +exec_tcb | +度量所有执行、映射方式访问的文件,以及加载的内核模块、固件、内核等文件 | +
| tcb | +在exec_tcb策略的基础上,额外度量以uid=0或euid=0身份访问的文件 | +|
| secure_boot | +评估所有加载的内核模块、固件、内核等文件,并指定使用IMA签名模式 | +|
| appraise_exec_tcb | +在secure_boot策略的基础上,额外评估所有执行、映射方式访问的文件 | +|
| appraise_tcb | +评估访问的所有属主为0的文件 | +|
| appraise_exec_immutable | +与appraise_exec_tcb策略配合使用,可执行文件的扩展属性不可变 | +|
| ima_digest_list_pcr | +10 | +在PCR 10中扩展基于摘要列表的IMA度量结果,禁用原生IMA度量 | +
| 11 | +在PCR 11中扩展基于摘要列表的IMA度量结果,禁用原生IMA度量 | +|
| +11 | +在PCR 11中扩展基于摘要列表的IMA度量结果,在PCR 10中扩展原生IMA度量结果 | +|
| ima_digest_db_size | +nn[M] | +设置内核摘要列表上限(0M~64M),不做配置的情况下默认为16MB(不做配置指的是不写该参数,但注意不能将值留空,如ima_digest_db_size=) | +
| ima_capacity | +-1~2147483647 | +设置内核度量日志条数上限,不做配置的情况下默认为100000条,配置-1表示无上限 | +
| initramtmpfs | +无 | +在initrd中支持tmpfs,以携带文件扩展属性 | +
| 参数名称 | +取值 | +功能 | +
|---|---|---|
| -d | +<path> | +指定生成摘要列表文件存放的位置,需为有效目录。 | +
| -f | +compact | +指定生成摘要列表文件的格式,当前仅支持compact格式。 | +
| -i | +<option arg>:<option value> | +指定生成摘要列表的目标文件范围,具体参数定义如下。 | +
| I:<path> | +指定需要生成摘要列表的文件绝对路径,如指定目录,则会执行递归生成。 | +|
| E:<path> | +指定需要排除的路径或目录。 | +|
| F:<path> | +指定路径或目录,为该路径或目录下所有文件生成摘要列表(同时指定e:参数时,忽略e:选项的筛选效果)。 | +|
| e: | +仅对可执行文件生成摘要列表。 | +|
| l:policy | +从系统SELinux策略匹配文件安全上下文,而不是直接从文件扩展属性中读取安全上下文。 | +|
| i: | +当生成metadata类型的摘要列表时,被计算的扩展属性信息包含文件的摘要值(必须指定)。 | +|
| M: | +允许显式指定文件的扩展属性信息(需要结合rpmbuild命令使用)。 | +|
| u: | +将“L:”参数所指定的列表文件名作为生成摘要列表的文件名(需要结合rpmbuild命令使用)。 | +|
| L:<path> | +指定列表文件的路径,列表文件中包含需要生成摘要列表的信息数据(需要结合rpmbuild命令使用)。 | +|
| -o | +add | +指定生成摘要列表的操作,当前仅支持add操作,即将摘要列表添加到文件中。 | +
| -p | +-1 | +指定将摘要列表写入文件中的位置,当前仅支持指定-1。 | +
| -t | +file | +只针对文件内容生成摘要列表。 | +
| metadata | +针对对文件的内容和扩展属性分别生成摘要列表。 | +|
| -T | +NA | +不添加该参数,则生成摘要列表文件,添加该参数则生成TLV摘要列表文件。 | +
| -A | +<path> | +指定相对根目录,将文件路径截去指定的前缀进行路径匹配和SELinux标签匹配。 | +
| -m | +immutable | +指定生成摘要列表文件的modifiers属性,当前仅支持指定immutable。摘要列表在enforce/enforece-evm模式下,摘要列表只能以只读模式打开。 | +
| -h | +NA | +打印帮助信息。 | +
| 关键字 | +值 | +说明 | +
|---|---|---|
| action | +measure | +开启IMA度量 | +
| dont_measure | +禁用IMA度量 | +|
| appraise | +开启IMA评估 | +|
| dont_appraise | +禁用IMA评估 | +|
| audit | +开启审计 | +|
| func | +FILE_CHECK | +将要被打开的文件 | +
| MODULE_CHECK | +将要被装载的内核模块文件 | +|
| MMAP_CHECK | +将要被映射到进程内存空间的动态库文件 | +|
| BRPM_CHECK | +将要被执行的文件(不含通过 /bin/hash 等程序打开的脚本文件) |
+|
| POLICY_CHECK | +将要被导入的IMA策略文件 | +|
| FIRMWARE_CHECK | +将要被加载到内存中的固件 | +|
| DIGEST_LIST_CHECK | +将要被加载到内核中的摘要列表文件 | +|
| KEXEC_KERNEL_CHECK | +将要切换的 kexec 内核 | +|
| mask | +MAY_EXEC | +执行文件 | +
| MAY_WRITE | +写文件 | +|
| MAY_READ | +读文件 | +|
| MAY_APPEND | +扩展文件属性 | +|
| fsmagic | +fsmagic=xxx | +表示文件系统类型的十六进制魔数 | +
| fsuuid | +fsuuid=xxx | +表示系统设备 uuid 的 16 位的十六进制字符串 | +
| fowner | +fowner=xxx | +文件属主的用户 id | +
| uid | +uid=xxx | +操作文件的用户 id | +
| obj_type | +obj_type=xxx_t | +表示文件的类型(基于 SELinux 标签) | +
| pcr | +pcr= |
+选择 TPM 中用于扩展度量值的 PCR(默认为 10) | +
| appraise_type | +imasig | +基于签名进行IMA评估 | +
| meta_immutable | +基于签名进行文件扩展属性的评估(支持摘要列表) | +
+
+其签名机制为:
+
+1) 将CMS签名信息追加到IMA摘要列表文件末尾;
+
+2) 填充结构体并添加到签名信息末尾,结构体定义如下:
+
+```
+struct module_signature {
+ u8 algo; /* Public-key crypto algorithm [0] */
+ u8 hash; /* Digest algorithm [0] */
+ u8 id_type; /* Key identifier type [PKEY_ID_PKCS7] */
+ u8 signer_len; /* Length of signer's name [0] */
+ u8 key_id_len; /* Length of key identifier [0] */
+ u8 __pad[3];
+ __be32 sig_len; /* Length of signature data */
+};
+```
+
+3) 添加魔鬼字符串`"~Module signature appended~\n"`
+
+此步骤的参考脚本如下:
+
+```
+#!/bin/bash
+DIGEST_FILE=$1 # IMA摘要列表文件路径
+SIG_FILE=$2 # IMA摘要列表签名信息保存路径
+OUT=$3 #完成签名信息添加后的摘要列表文件输出路径
+
+cat $DIGEST_FILE $SIG_FILE > $OUT
+echo -n -e "\x00\x00\x02\x00\x00\x00\x00\x00" >> $OUT
+echo -n -e $(printf "%08x" "$(ls -l $SIG_FILE | awk '{print $5}')") | xxd -r -ps >> $OUT
+echo -n "~Module signature appended~" >> $OUT
+echo -n -e "\x0a" >> $OUT
+```
+
+**3) 复用RPM签名(openEuler 22.03 LTS版本默认)**
+
+openEuler 22.03 LTS版本支持复用RPM签名机制实现IMA摘要列表文件的签名。旨在解决版本无专用IMA签名密钥的问题。用户无需感知该签名流程,当RPM包中含有IMA摘要列表文件,而不包含IMA摘要列表的签名文件时,会自动使用该签名机制。其核心原理是通过RPM包的头信息实现对IMA摘要列表的验证。
+
+对于openEuler发布的RPM包,每一个包文件可以包含两部分:
+
+- **RPM头信息:** 存放RPM包属性字段,如包名、文件摘要值列表等,通过RPM头签名保证其完整性;
+- **RPM文件:** 实际安装至系统中的文件,也包括构建阶段生成的IMA摘要列表文件。
+
+
+
+在RPM包安装阶段,如果RPM进程检测到包中的摘要列表文件不包含签名,则在`/etc/ima`目录下创建一个RPM摘要列表文件,将RPM头信息写入文件内容,将RPM头签名写入文件的`security.ima`扩展属性中。后续可通过RPM摘要列表间接实现IMA摘要列表的验证和导入。
+
+##### IMA摘要列表导入
+
+在开启IMA度量模式下,导入IMA摘要列表文件无需经过签名验证,可直接将路径写入内核接口,实现摘要列表的导入/删除:
+
+```
+# 导入IMA摘要列表文件
+echo | + | ++ | +
|---|---|
| + | ++ | +
| + | ++ | +
| + | ++ | +
|---|---|
| + | ++ | +
| + | ++ | +
|---|---|
| + | ++ | +
| + | ++ | +
| + | ++ | +
| + | ++ | +
| + | ++ | +
|---|---|
| + | ++ | +
| + | ++ | +
| + | ++ | +
| + | ++ | +
| + | ++ | +
| + | ++ | +
| + | ++ | +
| + | ++ | +
| + | ++ | +
| + | ++ | +
| + | ++ | +
| @@ -648,7 +644,7 @@ isula run -ti --pids-limit 1024 busybox bash |
|---|
| - | -- | -- | -- | -
|---|---|---|---|
| - | -- | -- | -- | -
| - | -- | -- | -- | -
| - | -- | -- | -- | -
| - - | -- | -- | -- | -