Even notwithstanding distributed systems, dev nodes have some interesting problems. At
Johns Hopkins we allowed users to mount removable disks (RK05 packs).
There were hacks made to the mount program to allow no privileged users to run it. We
had to disable dev nodes and setuid/setuid files from working on other than the root
filesystem.
Amusingly, we still found bugs. I was griping that people would mount on just any
directory on the system, the mtab wouldn’t show the absolute path. I suggested we chdir
to / early on or better yet, cd to /dev. That way I wouldn’t have to type /dev/ on to the
device name. I say the user would have to give an absolute path anyhow since there’s
nothing on /dev to mount on. Well my roommate immediately tries to prove me wrong. He
tries passing various devnodes and regular files that happen to sit in /dev. Then he
gets the great idea of mounting on /dev/. It works, but now we have no way to unmount
it. We had to reboot the machine. I quickly modified mount to require an EMPTY
directory owned by the user to be required for mounting.