l00012320
(kunlun_luzhanghui)
1
新建名为root的管理员用户。
使用可以登录成功,使用root登录失败,安全日志也有相关打印。
2026-02-26T09:48:00.380353+08:00 123456 unix_chkpwd[11165]: check pass; user unknown
2026-02-26T09:48:00.380911+08:00 123456 unix_chkpwd[11165]: password check failed for user (root)
2026-02-26T09:48:00.383088+08:00 123456 login[10688]: pam_unix(login:auth): authentication failure; logname= uid=0 euid=0 tty=/dev/ttyS0 ruser= rhost= user=root
2026-02-26T09:48:03.472899+08:00 123456 login[10688]: FAILED LOGIN (1) on ‘/dev/ttyS0’ FOR ‘root’, Permission denied
看见有类似话题,cat /etc/passwd确实同时有root和用户,但是登录的时候似乎走到了原始的root处,SSH、Web登录没有问题,串口登录有问题。
答案内容由AI生成,仅供参考:
解决方案与建议
方案一:避免创建名为 root 的用户
最佳实践:使用其他用户名代替 root,如 admin_bmc, bmc_root, maintainer 等。
# 推荐创建方式(通过 IPMI)
ipmcset -d adduser -v admin_bmc Admin@123
方案二:确保串口/SOL 登录支持 <root> 显式登录
如果必须使用该用户:
- 在串口/SOL 登录时,请直接输入
<root>(含尖括号)
- 不要输入
root
注意:<root> 是 BMC 内部逻辑用户名,不是 Shell 账户,部分终端可能需要关闭自动补全或启用原始输入模式。
方案三:修改 PAM 配置(高级)
可通过定制 pam.d/login 配置,使 login 服务也走 BMC IAM 接口,而非仅依赖 /etc/passwd。
示例思路:
# 修改 /etc/pam.d/login
auth sufficient pam_bmc_iam.so
auth required pam_unix.so
此操作需谨慎,可能导致系统无法登录,仅限开发或测试环境。
点击此处查看详细分析解答
关于新建名为 root 的管理员用户导致 SOL 登录失败的问题分析
根据您提供的详细信息,以下是对“新建名为 root 的管理员用户,SOL 无法登录”这一问题的全面分析和解释。
问题描述总结
根本原因分析
1. 系统内部对 root 用户的特殊处理
根据知识库中 Document Chunk 10: PAM 的内容:
“BMC 中对于 root 用户是转换为 \root> 用户进行管理的,所以在登录校验过程中会将对应的 user 重设为 \root> 后再进行后续执行。”
这表明:
- 在 BMC 系统中,当一个用户创建为
root 时,并不会真正使用标准 Unix 的 root 账户。
- 系统会将其逻辑映射为
<root>(内部标识),以避免与系统超级用户冲突。
- 但在 串口或 SOL 登录流程中(即
login 程序直接调用 PAM 模块),系统优先匹配了本地 /etc/passwd 中的原生 root 账户,而未正确路由到 BMC 自定义的 <root> 用户。
2. SOL 登录路径与 SSH/Web 不同
- SSH、Web、Redfish:这些接口由 BMC 的专用服务(如
bmc.kepler.iam)处理,能识别并重定向 root 用户到 <root>。
- SOL / 串口登录:基于传统的
getty/login 流程,依赖 PAM(pam_unix)认证,优先查本地 /etc/passwd,若密码不一致或账户被锁定,则认证失败。
因此:
SSH 登录 root 成功 → 走的是 BMC 自有认证逻辑
SOL 登录 root 失败 → 走的是传统 Linux login + PAM 认证 → 匹配到了系统原生 root
3. 日志证据支持
以下日志条目来自提供的安全日志:
2026-02-26T09:48:00.380911+08:00 123456 unix_chkpwd[11165]: password check failed for user (root)
2026-02-26T09:48:00.383088+08:00 123456 login[10688]: pam_unix(login:auth): authentication failure; ... user=root
2026-02-26T09:48:03.472899+08:00 123456 login[10688]: FAILED LOGIN (1) on ‘/dev/ttyS0’ FOR ‘root’, Permission denied
说明:
- 认证模块
pam_unix(login:auth) 明确尝试验证的是 user=root
- 但此
root 并非 BMC 创建的 <root> 用户,而是本地操作系统账户
- 当输入的密码与
/etc/shadow 中 root 的密码不符时,直接拒绝登录
而最终用 <root> 登录成功,说明 BMC 的 IAM 系统识别该别名并完成认证。
正确认知澄清(参考知识库)
| 事实 |
来源 |
创建名为 root 的管理员用户时,其权限并非真正的 root 超级用户,而是 BMC 内部映射为 <root> |
Document Chunk 1 & 10 |
用户名为 root 的管理员不能被删除,可能是作为“紧急用户”或 trapv3 用户保留 |
Document Chunk 1(Larry_Li 回复) |
| 串口登录必须经过登录认证,不允许绕过 |
Knowledge Graph: 串口访问系统 → 登录认证 |
User Login Management 服务负责登录流程管理 |
KG: User Login Management |
潜在风险与最佳实践建议
不建议创建用户名为 root 的普通管理员用户
因为:
- 命名冲突:极易与系统级
root 用户混淆,引发认证路径错误。
- 权限误解:虽然名为
root,但实际权限受限于 BMC 的 IAM 模型,并非操作系统 root。
- 安全日志混乱:出现
authentication failure for user=root 时难以判断是攻击尝试还是合法用户误操作。
- 无法删除:某些 BMC 版本将名为
root 的用户设为保留账户,无法删除。
解决方案与建议
方案一:避免创建名为 root 的用户
最佳实践:使用其他用户名代替 root,如 admin_bmc, bmc_root, maintainer 等。
# 推荐创建方式(通过 IPMI)
ipmcset -d adduser -v admin_bmc Admin@123
方案二:确保串口/SOL 登录支持 <root> 显式登录
如果必须使用该用户:
- 在串口/SOL 登录时,请直接输入
<root>(含尖括号)
- 不要输入
root
注意:<root> 是 BMC 内部逻辑用户名,不是 Shell 账户,部分终端可能需要关闭自动补全或启用原始输入模式。
方案三:修改 PAM 配置(高级)
可通过定制 pam.d/login 配置,使 login 服务也走 BMC IAM 接口,而非仅依赖 /etc/passwd。
示例思路:
# 修改 /etc/pam.d/login
auth sufficient pam_bmc_iam.so
auth required pam_unix.so
此操作需谨慎,可能导致系统无法登录,仅限开发或测试环境。
结论总结
| 项目 |
说明 |
| 问题根源 |
创建名为 root 的用户导致与原生系统 root 冲突,SOL 登录走传统 PAM 流程,未重定向至 BMC 的 <root> 用户 |
| 为何 SSH/Web 可登录? |
这些接口由 BMC IAM 服务处理,自动重定向 root → <root> |
| 为何 SOL/串口失败? |
使用 login + pam_unix,直接匹配本地账户,密码不一致即失败 |
| 如何解决? |
避免创建名为 root 的用户;或登录时手动输入 <root> |
| 是否应允许此行为? |
建议禁止创建名为 root 的用户,避免歧义和安全隐患 |
建议反馈给开发团队
建议在用户管理界面增加如下限制:
禁止创建用户名为 root 的本地用户
或在创建时提示:“该用户名为系统保留,请使用其他名称”
在 SOL 登录界面提示:“如需登录管理员账户,请尝试 <root> 而非 root”
如有进一步现象(如 <root> 用户无法执行某些命令),可继续提供日志进行深入分析。
Larry_Li
(LiJiang)
6
在2603的bmc_sdk中已修复,后续将发布到社区。