双网络场景,通过IPMI命令创建的用户,无法带外发送IPMI命令。

问题描述

双网络场景,有两个channel通道1和8。

通过IPMI命令创建的用户,在user list 8中查看无权限,并且无法带外发送IPMI命令。

环境信息

  • 软件版本:[OpenUBMC2605]

  • 硬件配置:[920B]

重现步骤

  1. [第一步]通过ipmi方式,创建用户,设置用户名和密码

  2. [第二步]在lan1和lan8下使能管理员权限,再使能用户

  3. [第三步]看到lan8的用户权限,没有成功设置成管理员权限,且无法带外发送ipmiI命令

期望结果

lan8设置成管理员权限,可以带外发送ipmi命令

实际结果

没有成功设置成管理员权限,且无法带外发送ipmiI命令

尝试过的解决方案

暂无

分析结论

通过ipmi方式创建用户,除channel 1通道,其它通道使能管理员权限不生效。

诉求

希望论坛伙伴或华为工程师,能帮忙提供下解决思路。

答案内容由AI生成,仅供参考:

总结

问题 原因 解决建议
双网络场景 LAN8 设置管理员权限不生效 多通道下用户权限与通道权限解绑,仅设置通道权限而未设置用户权限 使用 ipmitool user priv 命令并指定 channel number 直接设置用户权限
无法带外发送 IPMI 命令 用户自身权限仍为 no_access,且 IPMI Messaging 可能被禁用 确认用户 IPMI Messaging 为 on,或删除用户重建
点击此处查看详细分析解答

根据您提供的环境和问题描述,双网络场景(LAN1 和 LAN8)下,通过 IPMI 命令创建的用户在 LAN8 上设置管理员权限不生效,且无法带外发送 IPMI 命令,该问题的根本原因与 openUBMC 对 IPMI 用户权限与通道权限的实现方式 有关。以下基于已有知识库信息进行分析,并给出解决思路。


问题根因分析

在 openUBMC 的近期版本中(如 25.09/26.05),SetUserAccess 命令已按照 IPMI 标准规范优化为仅设置 LAN 通道权限,而非直接设置用户自身权限。这意味着:

  • 单通道场景(仅有 LAN1):用户权限与通道权限绑定,设置通道权限会同步设置用户权限。
  • 多通道场景(LAN1、LAN8 均使能):通道权限与用户权限解绑。您通过 ipmitool channel setaccess 针对 LAN8 设置的 administrator 权限,仅修改了通道 8 的通道权限,用户本身的权限仍然为 no_access,因此该用户无法通过 LAN8 发送任何 IPMI 命令。

知识库相关记录如下:

多通道场景下,通道权限与用户权限解绑,通道权限为 administrator,但用户本身权限为 no_access”(搜索结果第1条)

单通道场景绑定用户权限与通道权限;多通道场景下针对不同网口通道提供独立的通道权限”(搜索结果第4条)

此外,当前 openUBMC 实现将禁用 IPMI Messaging 视为禁用用户,导致用户即便通道权限正常,也无法发送通用 IPMI 命令(除非启用特定负载如 SOL),进一步解释了“无法带外发送命令”的现象。

当前 openUBMC 实现将禁用 IPMI Messaging 实现为禁用用户,导致所有的 ipmi 命令都无法发送”(搜索结果第6条)

因此,您的分析结论“通过 IPMI 方式创建用户,除 channel 1 通道,其它通道使能管理员权限不生效”是完全正确的。


解决思路与建议

根据知识库中的讨论和已知解决方案,推荐按以下步骤操作:

1. 同时设置用户权限(而非仅通道权限)

使用 ipmitool user priv 命令(而非 channel setaccess)来直接设置用户自身的权限。注意在多通道场景下,该命令需要手动指定 channel number,否则会默认使用带内通道号(如 BT 通道)而导致失败。

参考命令格式:

ipmitool -H <BMC_IP> -U <用户名> -P <密码> -I lanplus -C 17 user priv <userid> <privilege_level> 8

其中 <privilege_level> 为 4(管理员)、3(操作员)等。

知识库建议:“ipmitool user priv 命令兼容历史功能,支持带内发送不带 channel number 参数,设置用户权限与通道权限(此时多通道场景下,用户权限会随着不同通道的权限变更而变更)”(搜索结果第1条),但此功能可能尚未完全上线,建议手动传入 channel number 以确保生效。

2. 若上述方法无效,尝试删除用户并重建

如果数据库异常导致用户权限配置损坏,可以删除现有用户并重新创建同名用户,然后重新设置权限。

已知解决方案:“删除现有的 Administrator 用户,重新创建同名管理员用户即可恢复”(搜索结果第3条)。此方法在类似权限异常场景下被验证有效。

3. 确认 openUBMC 版本中的多通道权限绑定策略

您的环境版本为 OpenUBMC2605,建议查阅该版本的特性文档,确认是否已采用“方案一”(即 ipmitool user priv 命令同时设置用户权限和通道权限)。如果是,则直接使用该命令即可;否则可能需要手动分两步:

  • 先通过 ipmitool user priv 设置用户权限为 administrator
  • 再通过 ipmitool channel setaccess 设置通道 8 的权限为 administrator

4. 检查 IPMI Messaging 权限

确保该用户的 IPMI Messaging 选项为 on(默认应为 on),否则用户无法执行任何通用 IPMI 命令。可通过 ipmitool channel getaccess 1 <userid>ipmitool channel getaccess 8 <userid> 分别查看两个通道的访问权限,其中 IPMI 字段应为 true

知识库指出:“禁用 IPMI Messaging 后,用户只能执行与已启用的负载类型(如 SOL)和会话管理相关的命令,所有通用 IPMI 命令将被阻断”(搜索结果第6条)。


总结

问题 原因 解决建议
双网络场景 LAN8 设置管理员权限不生效 多通道下用户权限与通道权限解绑,仅设置通道权限而未设置用户权限 使用 ipmitool user priv 命令并指定 channel number 直接设置用户权限
无法带外发送 IPMI 命令 用户自身权限仍为 no_access,且 IPMI Messaging 可能被禁用 确认用户 IPMI Messaging 为 on,或删除用户重建

建议优先尝试 步骤1,若仍无法解决,再执行 步骤2(重建用户)。希望以上信息能帮助您解决问题。

看你图中有用户在频道8是有管理员权限的,是什么方式创建的?

如果是其他接口创建的,有可能是当前还不支持ipmi设置用户在非1频道权限导致的

ipmitool user命令

其它用户是在web上创建的