Como posso usar /dev/(u)random
no Ubuntu ou em qualquer sistema * nix?
Eu tentei isso, mas diz permissão negada.
Nota: Eu também tentei como root.
/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random
Como posso usar /dev/(u)random
no Ubuntu ou em qualquer sistema * nix?
Eu tentei isso, mas diz permissão negada.
Nota: Eu também tentei como root.
/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random
Respostas:
É um arquivo como dispositivo, para que você possa fazer coisas como copiá-lo ou copiá-lo. Por exemplo:
dd if=/dev/urandom of=~/urandom_test count=4 bs=1024
Cria um arquivo que contém 4K de bytes aleatórios.
cat /dev/urandom > ~/urandom_test2
Continuará a escrever bytes aleatórios nesse arquivo até você pressionar Ctrl-C. Não faça isso em um sistema de baixo desempenho ...
head -30 /dev/urandom > ~/urandom_test3
Escreve 30 linhas de bytes aleatórios
bytes terminated by a \n
. O que é seu? head -30 /dev/urandom
lhe dará 30 linhas de bytes aleatórios. O comprimento dessas linhas certamente será aleatório. Tente executar wc -l
o arquivo de saída se não estiver convencido.
/dev/urandom
é limitado a 32 MiB por read()
e dd
não tentará ler mais uma vez que /dev/urandom
produz esses 32 MiB, portanto, você deve ligar dd
com iflag=fullblock
. Veja dd está produzindo um arquivo aleatório de 32 MB em vez de 1 GB
Se você precisar de um certo número de bytes aleatórios, leia esse número de bytes em /dev/urandom
.
É um "arquivo especial" criado para ser como um arquivo para leitura de números aleatórios.
Usar cat
para ler /dev/urandom
é uma péssima idéia, porque tentará ler /dev/urandom
até o fim - mas não termina.
Você pode usar head
. Mas lembre-se de ler por byte, não por linha - porque as linhas seriam aleatoriamente separadas por bytes de nova linha aleatórios.
Portanto, para ler 30 bytes aleatórios em um arquivo random.bytes
, use:
head -c 30 /dev/urandom > random.bytes
Você pode ler como um usuário normal.
Normalmente, você deseja usar /dev/urandom
, não /dev/random
.
O problema é que /dev/random
é difícil de usar da maneira certa - e fácil de usar da maneira errada. Usá-lo errado funciona no começo, mas cria problemas de desempenho estranhos - mesmo aleatórios - depois. As vezes.
Quando você usa /dev/urandom
, ele faz uso /dev/random
interno, cuidando das partes complicadas.
RANDOM
para criar números inteiros positivos aleatórios:echo $RANDOM
e o programashuf
para gerar permutações aleatórias, por exemplo, reproduzir em ordem aleatória a partir de uma lista de reprodução.