Se você pudesse chamar mknod arbitrariamente, então você poderia criar arquivos de dispositivos possuídos e acessíveis por você para qualquer dispositivo. Os arquivos do dispositivo fornecem acesso ilimitado aos dispositivos correspondentes; portanto, qualquer usuário poderia acessar dispositivos arbitrariamente.
Por exemplo, suponha que /dev/sda1
tenha um sistema de arquivos ao qual você não tem acesso. (Digamos, ele é montado em /secret
). Por aqui, /dev/sda1
é bloco especial 8,1, então se você pudesse chamar mknod, por exemplo mknod ~/my_sda1 b 8 1
, então você poderia acessar qualquer coisa em /dev/sda1
através de seu próprio arquivo de dispositivo para /dev/sda1
, independentemente de quaisquer restrições do sistema de arquivos em /dev/sda1
. (Você obtém o dispositivo como um arquivo simples sem nenhuma estrutura, portanto, você precisaria saber o que fazer com ele, mas há bibliotecas para acessar arquivos de dispositivo de bloco.)
Da mesma forma, se você pudesse criar sua própria cópia de /dev/mem
ou /dev/kmem
, você poderia examinar qualquer coisa na memória principal; Se você pudesse criar sua própria cópia de /dev/tty*
ou /dev/pts/*
, você poderia gravar qualquer entrada de teclado - e assim por diante.
Portanto, o mknod na mão de usuários comuns é prejudicial e, portanto, seu uso deve ser restrito.
N.B. É por isso que a opção nodev
mount é crucial para dispositivos móveis, caso contrário, você poderia trazer seus próprios arquivos de dispositivo em mídias móveis preparadas.