更改 limits.conf 后无法登录

更改 limits.conf 后无法登录

我正在更新/etc/security/limits.conf

* soft nofile 10000000
* hard nofile 10000000

我忘了改变/etc/sysctl.conf

fs.file-max = 10000000 
fs.nr_open = 10000000

我无法通过 SSH 登录。包括 root 用户。

那么我应该如何登录服务器(ssh)并修复它。

系统:CentOS 版本 6.3

答案1

我知道的唯一重新获得您机器访问权限的方法是要求您物理上靠近服务器。

然后,重新启动服务器,当 grub 菜单出现时,在第一行按“e”,在命令末尾添加单词“single”或仅添加数字 1,然后按 Enter 键,再按“b”在 grub 中启动该行。

然后当服务器启动时运行:

mount -o remount,rw / 
mount -o remount,rw /proc 

要将“/”目录重新挂载为读写目录并允许将文件保存为单用户模式,则从只读文件系统开始。

然后修复/etc/security/limits.conf文件并重新启动服务器。

答案2

您是否尝试过类似下面的操作?

ssh user@server 'echo "fs.file-max = 10000000" > /etc/sysctl.conf; echo "fs.nr_open = 10000000" >> /etc/sysctl.conf'

另外,这可能与生成 bash 有关,因此完整文件的 rsync/scp 可以完成工作。

答案3

由于其他答案不完整且对我不起作用,我与您分享我的解决方案。首先重新启动服务器,在 BIOS 加载后,当 GRUB 菜单出现时,按“e”键进行编辑:

在此处输入图片描述

移动到以“linux16”开头的行,按“ctrl+e”到达行尾,然后systemd.unit=emergency.target向此行添加参数,如下所示:

在此处输入图片描述

按“ctrl+x”启动带有附加参数的服务器。登录服务器后,所有文件都处于只读模式,因此要将文件系统重新挂载为读写模式,请重新挂载具有读写权限的根目录( /)或目标目录。/etc/security/

最后打开配置文件:/etc/security/limits.conf并编辑配置并重新启动服务器。

现在您就可以 ssh 进入您的服务器了。

答案4

使用控制台/带外访问,这样可能会让您进入。如果失败,请重新启动系统,然后在控制台/OOB 访问上,在 GRUB 菜单上选择其中一个救援选项。或者在 grub 菜单上编辑其中一个启动选项并添加linux rescue到内核命令行,这应该会让您进入单用户模式。

相关内容