// 此模板仅供参考,如果不适用可以修改
问题描述
配置用户密码有效期为12天,密码最短使用期为1天,但超时后密码仍然有效,用户仍然可以正常登录
环境信息
-
操作系统:[如 Ubuntu 24.04]
-
软件版本:[如 OpenUBMC2512]
-
硬件配置:[如 CPU、内存等]
重现步骤
-
在web页面“用户&安全”→“安全配置”→“安全增强”界面下的“密码设置”栏下,配置“密码有效期”为12天,“密码最短使用期”为1天:
-
登陆host OS下,执行修改RTC时间并使能bmc同步RTC时间:
-
注销BMC web用户登录,并重新登录BMC web:
期望结果
密码过期后,无法使用该用户名和密码通过redfish,BMC web,ipmi命令访问BMC
实际结果
密码过期后,该用户名和密码通过redfish,BMC web,ipmi命令访问BMC仍能正常访问
passwd-MK1041_PR210K210811SZ00013_20260606-1031.rar.tar (9.5 MB)
尝试过的解决方案
[列出您已经尝试过的解决方案及结果]
分析结论
[详细总结您对此问题的分析结论]
答案内容由AI生成,仅供参考:
总结
| 可能原因 |
说明 |
| 用户是紧急登录用户 |
紧急用户不受密码有效期限制,符合当前现象 |
| 有效期配置未应用 |
全局或用户级PasswordExpiration未更新,仍为默认无限制 |
| 系统时间不准 |
时间不同步导致过期判断失效 |
| 软件缺陷 |
特定版本可能存在密码过期策略未强制实施的问题 |
建议优先检查 紧急登录用户设置 和 用户实际的PasswordExpiration值,这通常是导致"密码过期仍能登录"的直接原因。
点击此处查看详细分析解答
问题分析
根据您提供的问题描述(密码有效期配置为12天,最短使用期1天,但过期后用户仍能正常登录),结合所提供的知识库上下文,可能的原因如下:
1. 用户被设置为“紧急登录用户”
知识库(文档块1、搜索结果第2条)明确指出:
紧急登录用户:必须为管理员用户,设置某个管理员用户为紧急登录用户后,该用户不受密码有效期、登录规则和登录接口限制,用于紧急情况下登录BMC。
如果您的登录用户(如Administrator)已被配置为“紧急登录用户”,则即使密码已过期,系统也不会强制要求修改密码或阻止登录。请检查 用户&安全 → 安全配置 → 安全增强 页面中的“紧急登录用户”设置是否包含了该用户。
2. 密码有效期配置未正确应用到用户账户
3. 系统时间不同步导致过期判断错误
- 密码有效期的计算依赖系统时钟。如果BMC时间与RTC(硬件时钟)不一致,或NTP服务未正确同步,可能导致“当前时间”与“上次密码修改时间”的差值计算错误,使得密码看似未过期。
- 操作步骤中提到了“修改RTC时间并使能BMC同步RTC时间”,若同步失败或时间跳跃,可能造成过期判断异常。请检查BMC的当前时间是否准确。
4. 已知版本缺陷
- 知识库中提到,openUBMC 25.09 版本曾出现“不保留配置升级后带外IPMI命令发不通”等问题,涉及密码认证的静默拒绝。虽然与您的问题不完全一致,但说明该版本可能存在密码策略相关的实现缺陷。
- 您使用的环境是 OpenUBMC 2512 版本,可查阅该版本已知问题列表,或尝试升级到最新修复版本。
建议排查步骤
-
确认用户是否为紧急登录用户
登录BMC Web界面,进入 用户&安全 → 安全配置 → 安全增强,查看“紧急登录用户”列表中是否包含您正在使用的用户名。
-
检查密码有效期实际值
使用以下命令查看当前有效期设置:
# 查看全局最大有效期
busctl --user get-property bmc.kepler.account /bmc/kepler/AccountService bmc.kepler.AccountService MaxPasswordValidDays
# 查看某个用户的剩余有效期(需替换用户路径)
busctl --user get-property bmc.kepler.account /bmc/kepler/AccountService/Accounts/1 bmc.kepler.AccountService.ManagerAccount PasswordExpiration
-
验证系统时间同步
执行命令 timedatectl 或 date 查看BMC当前时间,确认与预期时间一致。
-
尝试重新保存配置或重启服务
在Web界面操作后,建议保存并退出,再重新登录确认配置是否持久化。必要时可重启BMC服务或整个设备。
总结
| 可能原因 |
说明 |
| 用户是紧急登录用户 |
紧急用户不受密码有效期限制,符合当前现象 |
| 有效期配置未应用 |
全局或用户级PasswordExpiration未更新,仍为默认无限制 |
| 系统时间不准 |
时间不同步导致过期判断失效 |
| 软件缺陷 |
特定版本可能存在密码过期策略未强制实施的问题 |
建议优先检查 紧急登录用户设置 和 用户实际的PasswordExpiration值,这通常是导致“密码过期仍能登录”的直接原因。
Larry_Li
(LiJiang)
3
@baode_chiweike 测试方法有误。 OS 修改时间, bmc 感知到时间跳变后, 业务的计时也会跟着跳变, 因此密码有效期会从跳变后的时间重新算起。
要测试这个, 先BMC重启, 在BMC重新启动前,在OS侧修改时间。
重启bmc 期间,修复os 侧时间,起来要等一会才可以提示密码过期。bmc 刚起来马上登录会登录成功,估计是还没有跑完所有业务?
Larry_Li
(LiJiang)
7
会登录成功, 是web登录么?
密码过期的业务是在account组件,你有时间也可以看下源码实现。
刚起来,登录是可以成功,再次退出来登录就提示密码过期
Larry_Li
(LiJiang)
9
在user_time_monitor_func方法里, 在启动2分钟之后才开启的轮询检查。