记录一个罕见问题,root用户在本地登录及SSH连接均遭遇permission denied的问题排查经过

完整报错为: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. 设置过高的影响
  1. 资源耗尽

    • 系统资源(如CPU、内存)是有限的。设置过高的进程数限制可能会导致用户创建过多进程,耗尽系统资源,影响系统稳定性。
  2. 系统负载

    • 超高的进程数会显著增加系统负载,使系统变得不稳定甚至崩溃。
  3. 登录失败

    • 如果系统中的某个用户已经接近这些高限制值,其他用户(包括root)可能无法创建新的进程(包括登录进程),这会导致登录失败。
  4. 系统性能下降

    • 高数量的进程会使系统调度器过载,降低系统性能,影响所有用户和进程。

为什么会导致无法登录

  1. 资源竞争

    • 当系统资源被大量进程消耗时,新进程(包括登录进程)无法获得足够的资源来启动。
  2. PAM (pam_limits 模块)

    • PAM 会在用户登录时检查并应用这些限制。如果限制设置过高,可能导致 PAM 无法正确处理,进而导致登录失败。
  3. 系统保护机制

    • 某些系统保护机制可能会触发,阻止进一步的进程创建,以保护系统核心功能,这会影响到所有用户的登录和操作。
  • 11
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值