什么阻止了 rm /dev/null?

Nek*_*ios 13 linux unix freebsd

rm /dev/null阻止的机制是什么?特别是在 FreeBSD 上,但我对所有其他基于 Unix 的系统也同样感兴趣。

小智 25

您实际上可以/dev/null在 Linux 和 BSD 系统上以 root 用户身份删除。当然,一旦系统重新启动/dev/null就会恢复。无需重新启动,也可以/dev/null使用该mknod命令进行恢复。


Jon*_*ler 11

权限 - 除非您以root(超级用户)或可能是少数其他用户或组(binsys)中的一个身份运行,否则您在/dev/目录中没有写权限,因此无法从目录中删除任何内容。

如果您是root,那么您可以将其删除 - 但您的系统会非常不满意。您可以使用mknod命令(或者可能是mknod()系统调用)重新创建它。或者您可以创建一个普通文件,但它不会具有与“真实”相同的特殊属性,/dev/null并且会使您的系统严重瘫痪。

这不是实验的好地方!(而且,如果您必须进行试验,我建议您使用 VM 而不是您的主机。)