linux – / dev / null文件成为常规文件

前端之家收集整理的这篇文章主要介绍了linux – / dev / null文件成为常规文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我们的生产服务器中突然/ dev / null成为常规文件,并且由于此sshd服务已停止并且无法登录服务器.我们还尝试以下步骤配置回字符设备文件,
rm -rf /dev/null
mknod /dev/null c 1 3

一旦我们运行rm命令,就会在mknod运行之前将/ dev / null重新创建为常规文件.我们无法弄清楚这是如何发生的以及创建此文件的组件.因此,在我们解决此问题之前,我们无法将/ dev / null创建为字符设备文件.

解决方法

当您删除(rm)/ dev / null时,任何正在运行且需要“> / dev / null”或等效的程序/脚本将重新创建具有该名称的新(常规)文件.
那些可以随时产生(有些也可能不断写入)

打败他们:

你创建一个新的/ dev / null特殊文件(在不同的名称下)

mknod /dev/newnull c 1 3
chmod 777 /dev/newnull

然后将其移动(以root身份)连续创建的:

mv -f /dev/newnull /dev/null

只有这样你才能重新启动(不要在没有适当的/ dev / null文件的情况下重新启动……通常不容易)[我忘记了这一步,这当然是必要的.谢谢@ Random832的提醒!]

你最后需要重新启动,以摆脱仍然打开“/ dev / null”的现有程序仍然会写入文件系统,即使你之后更换它,一点一点地填充文件系统)(的确),就像删除文件一样,任何仍然打开该文件描述符的程序仍然可以写入前一个inode,即使文件名现在指向新文件名)

猜你在找的Linux相关文章