centos7更改句柄(limit.config),导致用户无法登录。

原因:项目需要,修改了linux的最大打开文件描述符,修改后对应用户就无法登录了。。。
/etc/security/limits.conf,配置内容如下:

root soft nofile 2048000
root hard nofile 2048000
root soft nproc 2048000
root hard nproc 2048000

liyu soft nofile 102400
liyu hard nofile 102400
liyu soft nproc 102400
liyu hard nproc 102400

在这里插入图片描述
改完上述配置。重新连接后,root无法登录,用liyu普通账号可以登录,但su root也无法登录。
(还好本次改的东西不多,只是改了一个配置文件,如果改多个配置文件,这问题就尴尬了)

解决之前先搞清楚原因比较妥善
用户参数:文章提到的 /etc/security/limits.conf 中可以设置系统资源。很多网上文章只提到了修改这个文件。然而仅修改这个文件会导致容易踩坑。
ulimit设置的参数(/etc/security/limits.conf),其实是对单一程序的限制,进程级别。

软限制(soft nofile),程序可动态调整至硬限制,只会做出warnning。硬限制(hard limit)无法突破。
注意:hard limit值设置受限于nr_open。
内核参数:单个进程可分配的最大文件数: /proc/sys/fs/nr_open。单个进程可分配的最大文件句柄数。

cat /proc/sys/fs/nr_open
1048576

在这里插入图片描述
centos7默认的最大句柄数1048576<2048000(root配置的句柄数大于nr_open,而用户liyu比较幸运小于nr_open。这就是为何root用户无法登录而普通用户可以登录的原因)。
现在想修改/proc/sys/fs/nr_open已经无济于事,因为root用户无法登录,普通用户没权限更改该配置文件。。。

解决方案
进入单用户系统,更改响应配置文件
1.重启系统(重启虚拟机)。
2.进入到如下界面,立即键入(防止系统5秒后自启)
在这里插入图片描述
3.在上述界面中,按e键出现下面界面:
在这里插入图片描述
4.走到最后找到“ro”一行,将“ro”替换成 rw init=/sysroot/bin/sh,如下:
在这里插入图片描述
5.按Ctrl+x 进行重启进入单用户模式,最关键一步,执行chroot /sysroot,获取root权限,如下:
在这里插入图片描述
6.输入命令ls,确认是否是自己的根目录
在这里插入图片描述
7.确认完成后开始修复操作,将root用户句柄数进行修改。
在这里插入图片描述
8.修复完成后,输入两次命令exit,执行命令reboot,重启系统。
在这里插入图片描述
9.重启后发现用户root可以登录(好开心)。
在这里插入图片描述
10.别开心太早,试试用ssh工具是否可以登录,如果可以登录那就真结束了,反之请继续往下看…
网上上述操作一大把。千篇一律都是写到这里就结束了,真的结束了吗?
当然没有,否则就没有我这篇文章了

centos7单用户系统修改配置文件,导致ssh无法登录:入口

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值