Eu recomendaria deixar o código no lugar. Eu sei que parece bobo até mesmo sugerir isso, mas o fato de que seu /dev/urandom desapareceu é definitivamente estranho, e isso pode acontecer novamente. Modifique seu código para emitir mensagens de log que você não pode ignorar se precisar recriar arquivos de dispositivos no futuro.
Não há boas razões para o /dev/urandom ser excluído. O melhor que se poderia esperar seria uma ferramenta como puppet ou chef sendo configurada para gravar um diretório de arquivos de um tarball e primeiro limpando o diretório inteiramente como parte da expansão do tarball. (Eu consideraria tal uso um sério erro de configuração da ferramenta.) Mas qualquer processo executado como root terá os privilégios para remover o arquivo, então pode ser quase qualquer coisa.
Você pode configurar auditd para assistir a criações de arquivos, exclusões e renomeações no diretório /dev/ . Coloque as regras em /etc/audit/audit.rules para configurar os relógios persistentes:
-w /dev/ -p wa
Veja o auditctl(8) para detalhes completos sobre como configurar as listas de observação de auditoria; é bastante configurável e pode ser necessário ajustar a configuração ao seu sistema para que os eventos "padrão" não sobrecarreguem seus registros de auditoria.
Outra opção é definir o atributo immutable no arquivo usando o programa chattr(1) . É possível que qualquer programa ou ferramenta que possa ter removido o arquivo possa não ter o objetivo de remover o atributo immutable antes de excluir arquivos.