今天遇到一用户说昨天停电,今天数据库没有起来,登录上去一看,数据库没有起来,但通过su - oracle 切换用户,一直报 : cannot open session

奇怪了,赶紧查BAIDU,结果网上的都说是nofile 限制设置为-1 导致

但我这里是 65536,没有问题

还看了其他一些参数,比如 nproc,都统统的修改了,设置去掉了,都不行 。

也包含/etc/sysctl.conf,一通修改,还是不顶用。

于是自己建立一个用户,useradd sztech

su - sztech

同样的报错,切换了。

这个时候,通过ssh 直接登录,结果可以正常的登录.

看来是在切换上,赶紧问用户最近做过什么操作,用户反馈是前面做过安全加固,还安装了LINUX下的杀毒软件,我想杀毒软件不会影响这个吧,排除,看看其他,一行行对

我把前面加的先屏蔽掉,结果可以切换用户了。

在注释时,发现一个比较奇怪,怎么在两行上:

password requisite pam_cracklib.so lcredit=-1 dcredit=-1 ocredit=-1

dictpath=/usr/share/cracklib/pw_dict enforce for root

应该是一样吧

赶紧把这个注释去掉,再去切换,又出现了:could not open session.

把dictpath=/usr/share/cracklib/pw_dict enforce for root 放在上一行去,结果没有问题。

看来问题找到了,就是前面安全加固人员直接拷贝上去的,结果放到下一行了,由于修改后,没有重启过,所以没有感觉到。

正确的如下:

password requisite pam_cracklib.so lcredit=-1 dcredit=-1 ocredit=-1 dictpath=/usr/share/cracklib/pw_dict enforce for root

至此,问题解决。

说明一下:

lcredit=-1 至少一个小写字母 dcredit=-1 至少一个数字 ocredit=-1 至少一个特殊字符 , enforce for root ,root也不例外

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐