完整报错为:Last failed login: Wed May 22 15:13:24 0ST 2024 on tty1the last successful login.login attempts sinceThere were 2 falled
Permission denied
在内网其他机器ssh过去提示进去了,但很快就退出来了。直连服务器出现了以上的报错。
Last login信息已经显示就表明密码无误,但root用户在本地登录竟然都会被拒绝,这个太吓人了,从业这么多年,第一次见,后来开始在网上查找相关问题,全是说ssh的,后来发现一篇文章,虽然我跟他的解决办法不是一个,但是这个文章跟我的是一个问题,且给我了很大帮助
https://www.cnblogs.com/qjfoidnh/p/11616561.html
最后想了一下,我修改过/etc/security/limits.conf这个文件,soft和hard值让我改的很大。。赶紧修改回来,首先进入单用户,参考https://blog.51cto.com/hqq0000/2177280
进入单用户输入完root密码是可以的,然后赶紧把文件改回来,在重启
soft nproc 4096
hard nproc 8192
果然,解决了
原因是:
/etc/security/limits.conf
文件中的 nproc
设置用于限制每个用户可以创建的最大进程数。我的设置远远超过了通常合理的范围,可能会导致以下问题:
详细解释
1. 进程数限制 (nproc
)
nproc
选项指定每个用户可以创建的最大进程数。- soft limit:用户进程数达到此限制时,用户可以临时增加限制,但不能超过
hard limit
。 - hard limit:用户无法超过的最大进程数限制,必须由管理员设置。
2. 设置过高的影响
-
资源耗尽:
- 系统资源(如CPU、内存)是有限的。设置过高的进程数限制可能会导致用户创建过多进程,耗尽系统资源,影响系统稳定性。
-
系统负载:
- 超高的进程数会显著增加系统负载,使系统变得不稳定甚至崩溃。
-
登录失败:
- 如果系统中的某个用户已经接近这些高限制值,其他用户(包括root)可能无法创建新的进程(包括登录进程),这会导致登录失败。
-
系统性能下降:
- 高数量的进程会使系统调度器过载,降低系统性能,影响所有用户和进程。
为什么会导致无法登录
-
资源竞争:
- 当系统资源被大量进程消耗时,新进程(包括登录进程)无法获得足够的资源来启动。
-
PAM (
pam_limits
模块):- PAM 会在用户登录时检查并应用这些限制。如果限制设置过高,可能导致 PAM 无法正确处理,进而导致登录失败。
-
系统保护机制:
- 某些系统保护机制可能会触发,阻止进一步的进程创建,以保护系统核心功能,这会影响到所有用户的登录和操作。