如何修改openubmc的一些用户管理配置的默认值

背景:

某些客户需要一些默认的配置和功能,但与openubmc设置的默认值不一致

  1. 安全配置里禁用历史密码的默认值,openubmc默认值是5,但客户想将默认值设置为0,实现历史密码可重复使用
  2. 安全配置里的**登录失败锁定(失败次数)**的默认值,openubmc默认值是5,但客户想将默认值设置为无限期,实现关闭账户锁定功能,输入错误密码不会被锁定账户
  3. SNMP报文通知里默认是snmpv3,但用户想要默认设置为snmpv2c,实现所有的账户可以修改用户名

诉求:

  1. 禁用历史密码 默认值在出厂时设为0
  2. 登录失败锁定(失败次数) 默认值在出厂时设置为0
  3. SNMP报文通知 出厂时从snmpv3设置snmpv2c

做的一些修改,但都没有实现预期:

  1. SNMP报文通知 在闭源组件event_policy无法修改,用busctl查看发现属性AccountLockoutThreshold在闭源组件iam

  2. 禁用历史密码 登录失败锁定(失败次数) 在account组件中,直接修改mds/model.json中HistoryPasswordCount和AccountLockoutThreshold、PreviousPasswordsDisallowed的值**,**之后自动生成代码,编译出包升级后发现不生效且恢复出厂设置后,默认值也是不符合预期,且后台查看属性值只是有部分有修改掉

  3. 修改account组件中的account/manufacture/default_datas.lua文件,新增和修改t_account_service和t_authentication中AccountLockoutThreshold、HistoryPasswordCount,使用-o account:manufacture=True参数进行打包,升级后依然不生效,且恢复出厂设置也不符合预期

  4. 在account/src/lualib/account_app.lua文件中app:init()函数中调用set_history_password_count设置历史密码的次数,在打包升级后有实现HistoryPasswordCount为0,但接着出现了回滚现象

  5. 在account/src/lualib/infrastructure/db_upgrade.lua中修改数据库,新增一个函数修改相应的禁用历史密码的值,且在恢复出厂设置时也执行一遍操作,升级后发现日志有执行代码,但也未生效,且环境中mdbctl查看class少了AccountService,且恢复出厂设置也不符合预期

对于以上3个修改, 可以在出厂前,通过编写脚本,把这些定制成想要的默认值,然后再设置出厂还原点。

# ipmi命令
# 启动出厂还原点设置
ipmitool -H <IP> -I lanplus -p 623 -U <Username> -P <Password> -C 17 raw 0x30 0x93 0xDB 0x07 0x00 0x07 0x00 0xAA
# 预期返回:db 07 00 01

# 查询设置出厂还原点进度
ipmitool -H <IP> -I lanplus -p 623 -U <Username> -P <Password> -C 17 raw 0x30 0x93 0xDB 0x07 0x00 0x07 0x00 0x55
# 正在设置:db 07 00 00
# 设置完成:db 07 00 01

1 个赞

多谢