Não há problema em copiar / dev / random e / dev / urandom?

1

Estou configurando algumas coisas - exatamente o que provavelmente não importa.

De qualquer forma, recebi um erro do meu aplicativo que indicava que / dev / random e / dev / urandom eram necessários, mas ausentes.

Então eu os copiei de uma versão do Linux que os tinha, e tudo funcionou bem.

Está tudo bem? Quais problemas podem ocorrer porque eu fiz isso? Se isso não for OK, existe uma maneira "correta" de criar / dev / random e / dev / urandom?

    
por Duke Dougal 30.11.2016 / 23:27

2 respostas

3

Para criar corretamente os dois dispositivos, use:

mknod -m 444 /dev/random c 1 8
mknod -m 444 /dev/urandom c 1 9

/dev/random gerará dados pseudo-aleatórios de alta entropia. Se a entropia se esgotar, ela será bloqueada até que seja gerado o suficiente para o novo PRD.

/dev/urandom não se preocupa em ser suficientemente alta-entropia, o que é pela compreensão criptográfica atual não realmente significativa. O resultado é que urandom não irá bloquear durante uma seca de entropia, mas desde que a entropia suficiente foi usada para a semente inicial, a "fraqueza" na aleatoriedade é puramente teórica neste ponto.

    
por 30.11.2016 / 23:34
2

Sim, você pode copiar um dispositivo /dev/random . Se o sistema de arquivos do Linux que você está tirando deles tiver definições compatíveis (mesmos números maiores e menores), o que deveria acontecer, funcionará.

Você não pode usar apenas cp sem argumentos, porque copia os dados aleatórios e não o objeto do sistema de arquivos. Use cp -a . ( -a é a opção GNU para "preservar tudo").

Em segundo lugar, é claro que você tem que ser root, o que pode ser assumido se você estiver tentando criar uma entrada /dev . Se um usuário comum tentar cp -a /dev/random foo , ele será saudado com:

cp: cannot create special file 'foo': Operation not permitted

Se você tiver as permissões, cp -a criará uma cópia do arquivo especial (dispositivo de caractere).

Outra maneira é apenas mknod. Se acontecer de sabermos que o número principal do dispositivo para random é 1 e o menor número é 8, podemos fazer

mknod foo c 1 8   # character device, major 1, minor 8

Agora, foo aponta para o mesmo dispositivo de kernel que /dev/random . Permissões também são importantes; ao criar /dev entradas, observe o perms; use o argumento -m de mknod .

Se copiar /dev/random de uma árvore existente do sistema de arquivos do Linux com cp -a , ela deverá ter as permissões corretas (e, é claro, a propriedade).

No entanto, eu investigaria por que o seu sistema não tem essas entradas!

    
por 30.11.2016 / 23:34