What prevents rm /dev/null?
What is the mechanism by which rm /dev/null
is prevented? Specifically on FreeBSD, but I'm just as interested in all other Unix based systems.
You can actually delete /dev/null
as the root user on Linux and BSD systems. Of course, once the system is rebooted /dev/null
will be restored. Without rebooting also it is possible to restore /dev/null
using the mknod
command.
Permissions - unless you are running as root
(super-user) or possibly one of a select few other users or groups (bin
or sys
), you do not have write permission in the /dev/
directory, and therefore cannot remove anything from the directory.
If you are root
, then you could remove it - but your system would be extremely unhappy. You could recreate it, using the mknod
command (or perhaps the mknod()
system call). Or you could create a plain file, but that would not have the same special properties as the 'real' /dev/null
and would leave your system severely crippled.
It is not a good area for experimentation! (And, if you must experiment, I recommend using a VM rather than your main machine.)