在 CentOS 7 机器上工作时,我正在排除一些故障,并匆忙设置了以下值的 ulimits,以为这是无限制的:
root 硬核 0 root 硬 maxlogins 0 root 软 nofile 0 root 硬 nofile 0 root 软 nproc 0 root 硬 nproc 0 root 软 fsize 0 root 硬 fsize 0
我现在无法使用 sudo 或 su 转换为 root,因为它的登录/进程数限制为 0 次。这似乎是一个愚蠢的错误,我希望有一个解决方法。
有人知道如何在不使用 ulimits 的情况下逆转这个/boot 来编辑配置文件吗?
该配置文件归root所有,并且只有root具有写权限。
提前致谢。
答案1
我会启动init=/bin/sh
。
将其作为参数添加到内核命令行,系统将为您提供一个 root shell,而无需进行任何初始化。此时根文件系统可能为只读,在这种情况下,您需要将其重新挂载为读写。这允许您编辑任何文件,包括限制配置。
要重新启动,您需要以只读方式重新挂载根文件系统,调用sync
,等待几秒钟,然后按 Ctrl-Alt-Del。没有机制来确保有序关闭,因此也无法保证数据已写入磁盘,但以只读方式重新挂载根文件系统会将所有未完成的写入发送到磁盘队列,并且该sync
命令会确保所有这些写入都已提交并由磁盘确认,并且磁盘没有理由延迟之后的写入,因此等待足以确保所有写入都已完成。