近期,因为银监、人行各路检查,所以对系统的安全是百般加固。今天下午,本人在四台生产机(IBM P730,其中两两做HA)上超级自信的做密码安全加固时,一顿狂insert、狂dd、狂xx,顺便做普通用户及root密码的更改(复杂度是刚刚的.....),本人有一个习惯就是改完密码,必须保留现在的session,另打一个session进行验证,这次在改密码及做安全策略时因和同事聊得欢,没做验证就关掉了前三个session,当做完第四个系统进行验证时,大难来了............

$>su -

root's Password:

3004-302 Your account has expired:please see the system administrator.

3004-501 Cannot su to "root":Account has expired.

$

本人当时就头大了,这.........

还好还有一个session是root用户下,于是进行/etc/security/user的编辑,把之前的策略全部dd,继续su -,报错依旧。开始各种百度,google,大都是重改密码,我重新修改root密码后.

又su -,报错依旧;继续看贴子求助,大家说是得进入维护模式,可是我这不还保留root的session吗,有什么不可以做的啊?无耐中.......,不经意间看到这个贴子“

AIX登陆报3004-302错误的解决方法 一个空行引发的血案"


试了一下,root用户登录,报错信息如下:

AIX Version 5
Copyright IBM Corporation, 1982, 2007.
login: root
root's Password:
3004-302 Your account has expired; please see the system administrator.

   报用户过期,奇怪,我们这边的机器从来不设置用户期的,以为是密码过期,用系统盘启到service模式下,passwd,重试,仍然不行。


   这时有个人良心发现了,说是他做的一个什么安全的测试,改了/etc/security/user 下面的root段,里面加入了rlogin=false,当时心里就有点疑惑:“rlogin是控制远程telnet和rlogin的,现在的情况是本地都无法用root用户登入”,但既然有人投案了,就试试看呗。

改user文件也要root来改,root登不进去,还得重启进维护模式,进去后,检查了expires, maxage以及maxexpired得设置都没有问题,在root一段下面删除rlogin=false,重启,仍不成。


   冷静下来,仔细看了一下,root字段和之后的daemon字段中间少了一个空行,本来应该是:

root:
admin = true
SYSTEM = "compat"
registry = files
loginretries = 0
account_locked = false
rlogin = false
expires = 0
maxexpired = -1

                      #-------------------〉偶就素那华丽的空行~~~~~~~~~~~

daemon:
admin = true
expires = 0101000070


却写成了

root:
admin = true
SYSTEM = "compat"
registry = files
loginretries = 0
account_locked = false
rlogin = false
maxexpired = -1
daemon:
admin = true
expires = 0101000070


   这样一来,系统不把daemon当成一个独立的段落,而当作root段落参数的延续,相当于root直接读取dacmon的expires过期参数,我晕。


   加回车,空行,重启进多用户模式,ok。

   想必那人不懂,加完rlogin,看下边一行空格不顺眼,顺手删了,这就是所谓的多行不义必自毙了~~咬牙切齿ing:浪费我一个多小时的花样年华。


   一个空行引发的血案。


我当时兴致冲冲的赶紧照着做了一下,可不其然,问题解决。

可是其它三台系统如何做了,当时第一反应是rsh、rlogin,无果。突然想起这台机器的HA的另一节点,所以通过

smitty hacmp

-system Management(c-spoc)

--open a smit session on a node

---选要进入的节点----回车

----esc+9

直接进入第二节点,然后修改/etc/security/user,在root,daemon之间加空行,然后退出。再测试,问题解决。

  另外,两台的解决还在尝试.......,通过串口登录,问题依旧,唯一的办法就是拔掉其中的一个节点的网线,让资源组自动飘到另一节点,然后重启节点,进维护模式编辑/etc/security/user。这是目前能够想到风险最小的办法.......。


后记:

1.修改配置文件,backup是必须的。不然死了都来不急哭。

2.细心之细心,还是基础知识不踏实。

3.好的习惯时时刻刻不能丢!!!!!(痛定思痛)

4.熟习环境,利用现有的条件(HACMP的功能)