centos7账户名和密码都正确-却怎么都认证失败

2021/12/6 7:18:37

本文主要是介绍centos7账户名和密码都正确-却怎么都认证失败,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

问题概述及解决

问题描述

Centos 7 系统 优化系统内核后,账户无法登录(输入的账号和密码均正确,绝对没有错误!!,也没有禁止登录!!)。 报错为:Permission denied。

优化内核内容为:

cat /etc/security/limits.conf
* soft nofile 10000000  #错的,千万别用
* hard nofile 10000000 #错的,千万别用
* hard nproc 10000000 #错的,千万别用
* soft nproc 10000000 #错的,千万别用

报错截图:

出现上述问题,是因为在优化内核参数时多输入了一个0。

 问题解决

进单用户模式将/etc/security/limits.conf 中的参数改为系统可承受的值,经过多次测验,最大可允许的数值为1000009。

 

问题发现及排查

问题发现

公司视频项目在建设开始,对Centos系统部署完成,并进行系统内核调优,重启系统后,发现账户无法登录。确定输入的密码肯定正确,但是报错Permission denied。

问题排查

第一次尝试

进入单用户模式,修改账户密码。

在启动页面,按键 ‘e' 进入编辑

 按向下移动光标,跳转到最后,找到’ro‘ 修改为 'rw init=/sysroot/bin/sh' 【注意,输入时没有引号】

如下图

按Ctrl-x 进行重启进入单用户模式

 输入执行 chroot /sysroot 

 

 执行passwd root 修改密码【此处截图,中文显示异常,请忽略】

 执行touch /.autorelabel 

如果不执行,密码不会生效。

按Ctrl+D,执行reboot重启生效。

输入账户密码,依旧失败 ,报错依旧为 Permission denied。

至此第一次尝试失败

第二次尝试

依旧进入单用户模式,具体过程不重复描述;进入系统,查看/var/log/secure

如上图,报错内容中有一条很明显:Could not set limit for 'nofile' Operation not permitted 【我英语很烂,就不妄加翻译了】。

通过以上报错,我们定位到问题出在/etc/security/limits.conf  中配置的 nofile打开数限制值太大。

cat /etc/security/limits.conf
* soft nofile 10000000  #错的,千万别用
* hard nofile 10000000 #错的,千万别用
* hard nproc 10000000 #错的,千万别用
* soft nproc 10000000 #错的,千万别用

于是对上述配置进行修改【去掉一个0】

cat /etc/security/limits.conf
* soft nofile 1000000
* hard nofile 1000000
* hard nproc 10000000
* soft nproc 1000000

按Ctrl+D,执行reboot重启生效。

输入账户密码,成功登录。

至此,问题成功定位并解决。

总结

回看问题排查的过程,我们走了一些弯路。其实我们在尝试排错的时候,应该首先想到去查看日志,看一下具体报错内容。

话外

1、如果是账户密码错误 报错信息其实是 Login incorrect

 2、在写下这篇总结的时候,我特意尝试去查询 nofile 能够设置的最大值究竟是多少,但是并没有查到结果。于是我尝试去测试这个值最大限度。经过多次尝试 发现 该值最大能设置为1000009,我推测nproc最大应该也是1000009。对此,我这种半路出家的门外汉真的是不清楚,如果有大佬了解这其中的缘由,还请能够在评论区给予解答。在此,非常感谢!

 



这篇关于centos7账户名和密码都正确-却怎么都认证失败的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程