limingfeng
(Limingfeng(恒扬数据))
1
在验证 openUBMC / IPMI 用户管理功能 时,遇到两个和 ipmitool user 相关的问题,想请教下大家的经验。
问题一:ipmitool user priv 不支持设置 CALLBACK / OEM 权限
当前测试发现:
ipmitool user priv 2 1 1
IPMI command failed: Unspecified error
Set Privilege Level command failed (user 2)
在设置以下权限时不生效或直接失败:
问题二:ipmitool user test 返回 Unknown error
使用如下命令测试用户认证:
[root@localhost ~]# ipmitool user test 2 16
Password for user 2:
Unknown error
想确认几点:
-
CALLBACK / OEM privilege 是否在 openUBMC 中 默认未实现或被裁剪?
-
user test是不支持还是使用方法有误?
答案内容由AI生成,仅供参考:
关于 ipmitool user priv 和 ipmitool user test 在 openUBMC 中使用问题的分析
根据您在测试 openUBMC 时遇到的两个与 ipmitool user 相关的问题,结合已有技术资料和社区反馈,以下是详细解答:
问题一:ipmitool user priv 不支持设置 CALLBACK / OEM 权限
现象描述
执行命令:
ipmitool user priv 2 1 1
返回错误:
IPMI command failed: Unspecified error
Set Privilege Level command failed (user 2)
原因分析
-
命令依赖通道号(Channel Number)
ipmitool user priv 命令在多通道环境下必须指定有效的通道号。
- 其底层调用的是 Set Privilege Level Command,该命令需要一个有效的 Channel Number 参数才能正确执行。
- 如果未提供或提供了无效的通道号,系统将返回“Parameter out of range”或“Unspecified error”。
-
权限设置受通道绑定影响
- 在 单通道场景 下,设置通道权限会直接映射到用户权限。
- 在 多通道场景 下,
ipmitool user priv 仅设置特定通道的权限,不会自动应用于所有通道,除非显式指定。
-
CALLBACK / OEM 权限实现状态
- 虽然 openUBMC 支持 IPMI 2.0 协议,但某些特权级别(如 CALLBACK、OEM)可能因安全策略或功能裁剪而未完全实现。
- 社区反馈表明 openUBMC 对部分高级权限进行了限制,尤其在普通用户管理场景中。
解决建议
问题二:ipmitool user test 返回 Unknown error
现象描述
执行命令:
ipmitool user test 2 16
输入密码后返回:
Unknown error
原因分析
-
user test 功能支持情况
ipmitool user test 是用于验证用户凭据的命令,但在某些 BMC 实现中可能被禁用或未实现。
- 根据 openUBMC 的设计原则,出于安全性考虑,部分调试类命令可能默认关闭或受限。
-
用户 ID 与权限匹配问题
- 用户 ID 2 通常是“Callback”级别用户,若其权限配置不完整或被限制,可能导致认证失败。
- 错误码 16 表示尝试设置的权限等级超出允许范围。
-
历史兼容性问题
综合结论与建议
| 项目 |
是否支持 |
说明 |
ipmitool user priv 设置 CALLBACK/OEM |
部分支持 |
需明确通道号,且受限于系统配置和安全策略 |
ipmitool user test |
可能不支持或受限 |
openUBMC 可能出于安全考虑禁用此命令 |
建议措施:
-
优先使用标准命令格式:
ipmitool channel setaccess <channel> <userid> [callin=on|off] [ipmi=on|off] [link=on|off] [privilege=level]
-
确认 BMC 版本与工具兼容性:
- 当前测试环境为 BMC Version 25.03,建议升级至 25.06 或更高版本,以获得更完整的 IPMI 支持。
-
参考测试失败记录:
- 文件
iTestSmart_OpenUBMC问题反馈IPMI普通用户权限管理测试结果Fail_1691.json 已记录类似问题,可作为诊断参考。
-
联系社区确认实现状态:
- 如 hxmygcs 所述,openUBMC 社区已明确某些功能“暂无计划”实现(如 BMC 温重启)。建议确认 CALLBACK/OEM 权限是否属于裁剪范围。
提示:对于生产环境,推荐通过 Web 界面或 Redfish API 进行用户权限管理,避免使用低层 IPMI 命令带来的兼容性风险。
相关链接:
- 【iTestSmart OpenUBMC问题反馈】IPMI普通用户权限管理,测试结果Fail。
- ipmi命令设置用户权限不生效的问题
- ipmitool 版本对openubmc 的支持能力如何
- 添加一条IPMI命令实操分享——设置所需的风扇速度
Larry_Li
(LiJiang)
3
问题一: 确认下 2号用户是否是唯一的管理员,最后一个管理员是不能被删除和修改到非管理员权限。可以新增个管理员试试,有问题再查看下app.log 里面的报错信息。
问题二: ipmitool user test 是支持的, 源码实现在account组件。 查看下app.log 里面的报错信息
limingfeng
(Limingfeng(恒扬数据))
4
多谢啦,问题一:保证有管理员的情况下设置OEM和CALLBACK成功了。
问题二:
输入正确密码openUBMC@2025 后回显Unknow Error,;从日志能看到解密失败,但是不理解原因, 还有就是test <16|20> [<password]>这里的16|20是什么意思,代表什么配置吗?
2030-12-02 04:32:45.669340 account ERROR: C: [WSEC_CBB][405] (UTC) 2030-12-02 04:32:45 Key (DomainId=6, KeyId=5) not found
2030-12-02 04:32:45.669725 account ERROR: C: [WSEC_CBB][1891] (UTC) 2030-12-02 04:32:45 MemGetMkByIDHash fail 268
2030-12-02 04:32:45.672154 account ERROR: C: [WSEC_CBB][755] (UTC) 2030-12-02 04:32:45 [SDP] GetWorkKeyByIDHash get WK failed 268.
2030-12-02 04:32:45.672530 account ERROR: C: [WSEC_CBB][913] (UTC) 2030-12-02 04:32:45 [SDP] SdpDecryptDataV2 get WK failed 268.
2030-12-02 04:32:45.673690 account ERROR: kmc_client.lua(46): decrypt failed, decrypt failed, ret = 268
2030-12-02 04:32:45.674635 account ERROR: C: [WSEC_CBB][405] (UTC) 2030-12-02 04:32:45 Key (DomainId=6, KeyId=5) not found
2030-12-02 04:32:45.675548 account ERROR: C: [WSEC_CBB][1891] (UTC) 2030-12-02 04:32:45 MemGetMkByIDHash fail 268
2030-12-02 04:32:45.676275 account ERROR: C: [WSEC_CBB][755] (UTC) 2030-12-02 04:32:45 [SDP] GetWorkKeyByIDHash get WK failed 268.
2030-12-02 04:32:45.676706 account ERROR: C: [WSEC_CBB][913] (UTC) 2030-12-02 04:32:45 [SDP] SdpDecryptDataV2 get WK failed 268.
2030-12-02 04:32:45.683836 iam ERROR: init.lua(107): get multihost obj failed, ./opt/bmc/libmc/lualib/mc/mdb/init.lua:500: invalid interface:bmc.kepler.Managers.Multihost
2030-12-02 04:32:45.685090 iam ERROR: engine.lua(27): BMC.Error.Unknow: pack failed, error: pack binary failed: unknow field CompletionCode.
limingfeng
(Limingfeng(恒扬数据))
6
非Administrator的用户测试可以, 请问这里是有什么限制,不允许测试Administrator用户?
这种抛错一般是因为ksf的密文和数据库中的存储不匹配了,请问下环境之前有做什么操作,比如恢复出厂设置、不保留升级之类的,看下重新设置密码之后是否还会出现这个报错
1 个赞
Larry_Li
(LiJiang)
8
@limingfeng 新建1个管理员用户进行测试是否可以? 如果可以,那可能是环境异常,原因如 chenhaoyang 所述
limingfeng
(Limingfeng(恒扬数据))
9
修改密码后测试Administrator用户成果了,应该是环境问题。但不确定具体原因。 多谢解答~