误将/etc/security/limits.conf中root的nofile与nproc设置为unlimited后无法登录root账户的解决咨询
解决方案:通过紧急shell模式修复root用户的limits配置
完全可以通过单用户/紧急shell模式来修改错误的配置,这是生产环境下修复这类权限配置问题的标准方案,刚好适配你只能在非工作时间操作的需求。针对你的Vicibox 8(基于openSUSE Leap 42.3),具体操作步骤如下:
步骤1:进入紧急root shell
- 重启服务器,在GRUB启动菜单出现时(如果服务器默认隐藏GRUB,开机时按住Shift键即可调出),选中当前正在使用的内核版本,按下
e键进入启动参数编辑界面。 - 找到以
linux开头的那一行(通常是一长串启动参数),将光标移到这一行的末尾,添加init=/bin/bash。 - 按下
Ctrl+X或者F10启动系统,此时会进入一个无图形界面的root权限shell——注意此时根文件系统默认是只读挂载状态,无法直接修改文件。
步骤2:将根文件系统重新挂载为读写
在紧急shell中执行以下命令,让根文件系统具备可写权限:
mount -o remount,rw /
执行成功后,你就可以修改系统配置文件了。
步骤3:修正limits.conf的错误配置
用vi编辑器打开目标配置文件:
vi /etc/security/limits.conf
找到你之前设置的root用户nofile和nproc相关行,把unlimited改成合理的数值(比如65535是常见的业务场景上限),示例修改后内容:
root soft nofile 65535 root hard nofile 65535 root soft nproc 65535 root hard nproc 65535
编辑完成后,按Esc键,输入:wq保存并退出编辑器。
步骤4:恢复正常启动
先将根文件系统重新挂载为只读(可选,但更符合安全规范):
mount -o remount,ro /
然后执行以下命令重启服务器,恢复正常启动流程:
reboot
服务器重启完成后,root用户的SSH登录应该就能恢复正常了。
额外注意事项
- 一定要严格在非工作时间操作,避免影响生产业务。
- 如果你的GRUB菜单设置了密码保护,需要先获取GRUB密码才能进入参数编辑界面。
- 重启后先测试root用户的SSH登录,确认配置生效后再恢复业务运行。
内容的提问来源于stack exchange,提问作者rustynail
相关产品推荐
相关产品推荐

