因为错误修改 /etc/security/limits.conf 里 nofile 设置导致 CentOS 无法登录

一位同事的 CentOS 系统突然无法登录,从控制台也不行,报错为 Permission denied

用 LiveCD 启动,在 LiveCD 下 lvdisplay 把系统根目录找到:

如果 LV Status 不是 available,需要执行 lvchange -ay /dev/centos/root 来激活。

然后 mount /dev/centos/root /mnt 就可以在 LiveCD 系统的 /mnt 查看原系统根目录内容了,下面描述的路径还是使用原系统的,不加 /mnt 前缀。

之前一直以为是被黑或者密码不对了,但查看 /etc/passwd/etc/shadow 的时间戳都没人动过,使用 LiveCD 把 selinux 禁掉还是一样报错。

查看 /var/log/secure 日志发现如下错误:

然后查了一下,应该是 /etc/security/limits.conf 配置出错了。不知道是谁设置了进程最大打开文件描述符数 nofile 6553500 。我们使用 ulimit -n 6553500 测试,可以得到如下报错:

说明此环境不允许设置到这个值。

修改了一下配置如下,再重启就能登录了:

最大值应该用 cat /proc/sys/fs/file-max 获取。

相关推荐
2401_8920709818 小时前
【Linux C++ 日志系统实战】LogFile 日志文件管理核心:滚动策略、线程安全与方法全解析
linux·c++·日志系统·日志滚动
雪可问春风18 小时前
docker环境部署
运维·docker·容器
lwx91485218 小时前
Linux-Shell算术运算
linux·运维·服务器
翻斗包菜18 小时前
PostgreSQL 日常维护完全指南:从基础操作到高级运维
运维·数据库·postgresql
somi718 小时前
ARM-驱动-02-Linux 内核开发环境搭建与编译
linux·运维·arm开发
双份浓缩馥芮白18 小时前
【Docker】Linux 迁移 docker 目录(软链接)
linux·docker
海的透彻19 小时前
nginx启动进程对文件的权限掌控
运维·chrome·nginx
黄昏晓x19 小时前
Linux ---- UDP和TCP
linux·tcp/ip·udp
路溪非溪19 小时前
Linux驱动开发中的常用接口总结(一)
linux·运维·驱动开发
此刻觐神19 小时前
IMX6ULL开发板学习-01(Linux文件目录和目录相关命令)
linux·服务器·学习