Generar una contraseña aleatoria desde la consola
Unos de los dispositivos especiales de los sistemas GNU/Linux son /dev/urandom y /dev/random que generan códigos pseudoaleatorios.
Si mostramos la salida de cualquiera de los dos ficheros veremos que no sólo muestran letras y números, sino también muchos caracteres especiales:
$ cat /dev/urandom ����YjW�!����IdQא�'܀h��"6Ü쉈'��~P��I^�%��9��,cO�fQ��H��"�]�C)��WSgAL2�ӿ�@��S������ �����/����[j�9��8�������8w<{s�a����74�(qO�J��]Y�J����ހNۤڶ��dR��y�F��q�oJ>g��u�#튽*�l.YvG�۴� �B߅_��}·���s��{��V�D��B�8�P�\v��p T�z����U��i�3�t� ��� K�]h`42�˔�7��{ַ-����kyq�*�AfK�|�>��͓���F۪��ɺm���]Í 4���{�A.� t�84�x̤��hk5��v�7
Pero si lo filtramos con tr, podemos quedarnos sólo con las letras y los números:
$ cat /dev/urandom | tr -dc a-zA-Z0-9 ZwRecbejLIv26q0gRZIY3MyzT0lfRBQkMcL1xc4yipM5ERDEfiA7Ri2tNdNsFTki4qMnOiipH5BothbKf6yaPoeKsKQ3YQm5iB4NIpyptw9or1Y580BXAFq2gH3b3EL2yBkNP9Y8lvBJnMLwcS3193fhQkR7NCtF3I9zZ39rnc6atqPvtzvF7KH0mpbRWjqG9IEmo4xvLUAd1x10xui50j8xlpuxLNafiZMOuIGtCabxATw2bvcsDyGx0TCGa0nEBmH6z6sDlEQNGaszOu81MgsEoWib2CZFIRMtjn6OTifAHsWisMZEOmpsaywnfzndejwEpN8wOB3vpHlp7JIXDQujSayGY7zUNzNqePyJPXuWr
Si queremos contraseñas más seguras, podemos añadir también caracteres especiales.
Y como tenemos que limitar a un número de caracteres la cadena, lo podemos hacer con head. Si queremos 32 caracteres, escribiremos:
cat /dev/urandom | tr -dc a-zA-Z0-9 | head -c 32