Una buena contraseña o password, todos lo sabemos, es esencial para dificultar la entrada a nuestro sistema, sobre todo si se es root. Por "buena contraseña", se entiende que debe incluir mayúsculas, minúsculas, números, símbolos y no ser menor a unos 14 o 15 caracteres. Pero por nuestra naturaleza humana, cuando uno mismo la define, tendemos a crear patrones no muy aleatoreos y contraseñas de no más de 10 caracteres.
Con mkpasswd, es posible controlar la forma en que deseamos generar contraseñas, que serán, si, difíciles de recordar pero extremadamente seguras. (A mayor seguridad menor facilidad de uso.)
#> mkpasswd 1zi7MP*av
mkpasswd sin argumentos nos devuelve una cadena de 9 caracteres, es el default. ¿No es suficiente?, tan solo aumentamos el largo de la misma con la opción -l:
#> mkpasswd -l 16 xeGcf39qtttHo@nf
Puedes aumentar o disminuir la densidad de mayúsculas, minúsculas, dígitos y símbolos especiales, en el password a través de las siguientes opciones:
Asi por ejemplo:
#> mkpasswd -l 18 -d 5 -c 5 -C 5 -s 3 K17?fS9lD8/hib5OX@
Como el largo es 18, y la suma de lo que se pide es 18 también, nos devuelve la cantidad exacta de cada tipo de caracteres. Si con los mismos valores, pero con un largo de 22, entonces la densidad de caracteres de unos y otros puede variar, pero dejando mínimo los que se indican:
#> mkpasswd -l 22 -d 5 -c 5 -C 5 -s 3 1tHZ2"43B3rj|dWHp/qynn
Con mkpasswd es posible también asignar contraseñas a usuarios del sistema, tan solo indicamos el nombre del usuario como última opción, y añadimos la opción -v, para ver la salida a pantalla:
#> mkpasswd -l 7 -v ana spawn passwd ana Changing password for user ana. Nueva UNIX contraseña: Vuelva a escribir la nueva UNIX contraseña:password for ana is 6ugZ*0O
Todo lo hizo el comando, y al final nos regresa la contraseña '6ugZ*0O' para el usuario 'ana'. Ahora solo bastará mandársela via email o notificarla por otro medio al usuario respectivo.
Por último, supongamos que deseas generar 10 contraseñas, un pequeño shell script lo hace:
#!/bin/bash for a in 1 2 3 4 5 6 7 8 9 10 do mkpasswd -l 12 -s 0 done (guarda lo anterior como pass.sh #> chmod 700 pass.sh #> ./pass.sh CesRkw87npny dfncEne02ntZ Ziejwa8je5yF 36onjsxchtGE f5lgmlhq8qFM 1yyjv0EfxxaK 7gtcikixdOA7 n4ZEwgmu0xlx 7EuthyG0csvj l4rkhL8vieTx
Genera 10 contraseñas de 12 caracteres de largo sin símbolos, pero que sucede si necesitas, tal vez cientos de contraseñas, entonces, mejoramos el script con un poco de csh:
LIMITE=100 for ((a=1; a <= LIMITE ; a++)) # doble paréntesis y LIMITE sin $, sintaxis en C do mkpasswd -l 10 done #> ./pass.sh sKt\4xEqa9 Ewn8s+4Hkr t:nm28TqjO ypt7BA3oh$ ... 96 más
Ahora puedes copiarlas a una hoja de cálculo donde podrás anexarla a tus usuarios y generar correos, o usando un poco de grep y sed, combinarlos con /etc/passwd, etc. Las posibilidades son demasiadas. Espero te sea de utilidad esta pequeña gran utilidad.
| AÑADIR ESTE ARTÍCULO A MIS FAVORITOS |
Más artículos sobre Linux y Open Source