Account manages user permissions, password verification and security policies to control user permissions on the system and managed objects
account
验证说明:本文档是 account 组件构建与测试的唯一指导文档,验证流程请严格按本文档执行。
docs/目录下的文档为特性说明文档,不涉及构建流程。原始 README 内容已移至docs/功能简介.md。本组件仅支持 Ubuntu 24.04 LTS,openEuler、CentOS、Debian 等其他系统均不支持,不要尝试使用其他镜像替代。
account组件负责openUBMC的所有用户及用户相关服务的管理,除了基本的查询增加删除外,还提供定制与备份等功能,围绕用户与用户服务该组件内主要包含:1. 用户:IPMI用户、本地用户、客户定制用户,SNMP团体名与VNC是提供给SNMP接口与远程窗口管理系统的,考虑到两者都有密码,组件内将之当做用户管理;2. 用户服务:用户本身除了基础的用户名、密码、登录接口外,使用用户时还受历史密码、弱密码、密码长度、密码策略,登录规则等限制,这些功能被统称为用户服务;3. 其他:openUBMC对外提供收集日志、备份还原、定制化、配置导入导出等功能
目录
仓库地址
系统要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Ubuntu 24.04 LTS(仅支持此版本) |
| 芯片架构 | x86-64(amd64) |
| Python | >= 3.10(init.py 运行依赖) |
bingo、Conan 等构建工具由 init.py 自动安装,无需手动准备。推荐使用 Docker 容器进行构建,可使用以下镜像快速启动开发环境:
docker pull swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2
环境依赖
构建 account 前需完成 openUBMC 开发环境初始化(安装 bingo、Conan、Node.js、配置 Conan 远程仓库等)。完整初始化步骤和常见问题排查请参阅 openUBMC 构建指导书,该文档包含容器环境搭建、init.py 执行、Conan 登录验证等全部操作说明。
禁止手动安装 bingo 和 Conan:手动安装(如
pip install conan)会导致 Conan 远程仓库认证失败,bingo build无法拉取依赖包。所有构建工具必须通过 manifest 仓库的 init.py 流程一键安装。
构建
获取组件代码
前提:已完成 环境依赖 中的 init.py 初始化流程,
bingo和conan命令可用。
cd /home/workspace
git clone https://gitcode.com/openUBMC/account.git
组件级构建
进入 account 组件目录后,使用 bingo 执行构建:
cd /home/workspace/account
# 默认 dev 阶段构建
bingo build --stage=dev
# 构建并发布到 stable 阶段
bingo build --stage=stable
# Release 类型构建
bingo build --stage=dev -bt release
构建参数说明
bingo build [-h] [-bt BUILD_TYPE] [--stage STAGE] [-u] [-r REMOTE] [--conan2] [-nc] [-o OPTIONS] [--user USER] [-wb] [--ccache]
| 参数 | 说明 | 默认值 |
|---|---|---|
-bt / --build_type |
构建类型,可选 debug、release |
debug |
--stage |
包发布阶段,可选 dev、pre、rc、stable |
dev |
-u / --upload |
上传组件包到 Conan 仓库 | — |
-r / --remote |
Conan 仓库别名 | — |
--conan2 |
强制使用 Conan2 构建组件 | — |
-nc / --no_cache |
强制更新 Conan 缓存依赖 | — |
-o / --options |
定义组件选项值 | — |
--user |
指定 Conan 包的 user 字段 | openubmc |
-wb / --without_build |
不强制源码构建组件自身 | — |
--ccache |
使用 ccache 加速 C/C++ 编译 | — |
测试
使用 bingo test 运行各类测试,需加 -jit 参数,否则测试会失败:
# 运行单元测试
bingo test -ut -jit
# 运行集成测试
bingo test -it -jit
# 运行 mock 测试
bingo test -mt -jit
# 运行 fuzz 测试
bingo test -ft -jit
# 运行单元测试并指定过滤
bingo test -ut -jit -f <filter>
# 运行单元测试并启用 ASAN
bingo test -ut -jit -as
常用测试参数:
| 参数 | 说明 |
|---|---|
-ut |
启用单元测试 |
-it |
启用集成测试 |
-mt |
启用 mock 测试 |
-ft |
启用 fuzz 测试 |
-f |
测试过滤 |
-jit |
需加此参数,否则测试会失败 |
-as |
启用 AddressSanitizer |
项目结构
account/
├ .pre-commit-config.yaml # Git 钩子配置
├ CHANGELOG
├ CMakeLists.txt
├ CONTRIBUTING.md
├ LICENSE
├ Makefile
├ README.md
├ conanfile.py
├ customization/ # 定制化配置
├ docs/ # 文档
├ manufacture/ # 装备配置
├ mds/ # MDS 模型定义
├ permissions.ini
├ proto/ # 协议定义
├ src/ # 源码实现
├ test/ # 测试相关
├ vendor/ # 供应商数据
└ whitelist/ # 白名单配置
许可证
本项目基于 Mulan PSL v2 许可证开源。详情请参阅项目根目录下的 LICENSE 文件