¿Requieres de una instalación o configuración de Linux o sus servicios?
¿Un desarrollo WEB empresarial a la medida?
¿Un curso o capacitación a la medida?
Revisa el sitio de SERVICIOS de LinuxTotal


Generador de contraseñas pronunciables (gcp.sh) 

Copyright © 2005-2018 LinuxTotal.com.mx
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation.

Autor: Sergio González D.  

Hay ocasiones que los usuarios insisten en poner contraseñas muy débiles de 5 o 6 caracteres a lo más. Y el argumento que dan es que con passwords o contraseñas que tengan números, mayúsculas, minúsculas y símbolos (como debe ser) se les olvida o se les complica. Entonces, para esos casos, hice este script que genera contraseñas donde se alterna una consonante con una vocal y por lo tanto resulta una contraseña pronunciable. ¡¡¡ADVERTENCIA!!!, usa este script para aprender mas sobre shell scripts o para usuarios en equipos en que la seguridad no importe demasiado, ya que obviamente, este tipo de contraseñas pronunciables son inseguras. Yo recomiendo que si la vas a usar con usuarios reales, el largo sea de mínimo 10 y de cualquier modo no estaría demás que agregaras un símbolo o un par de números al final, o al menos cambiar una o dos de las letras por mayúsculas.


Requisitos

  • Tener instalado el programa expect , para instalarlo con una distro tipo redhat: y las basadas en debian
  • Entender como funciona el comando mkpasswd


gcp.sh

#!/bin/bash
#################################################################################################
# Copyright 2005-2018 Sergio González Durán (sergio.gonzalez.duran@gmail.com)
# Se concede permiso para copiar, distribuir y/o modificar este programa siempre
# y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos
# de la GNU General Public License,
# Versión 3 o cualquiera O Posterior publicada por la Free Software Foundation.
#################################################################################################
# ************************************** # GENERADOR DE CONTRASEÑAS PRONUNCIABLES # gcp.sh 0.1 octubre/2007 # ************************************** # revisa que el numero de argumentos sea el correcto y que al menos exista un argumento if [ "$1" = '' -o $# -gt 2 ] then # ayuda de uso echo "uso: ./gcp.sh #deCaracteres [#dePasswords]" echo "ejemplos: ./gcp.sh 10 (genera un password de 10 caracteres)" echo " ./gcp.sh 8 5 (genera 5 passwords de 8 caracteres)" exit fi # si hay un solo argumenta entonces solo se genera una contraseña, sino se generan las # indicadas por el segundo argumento if [ $# -eq 1 ] then CANT_PASSW=1 else CANT_PASSW=$2 fi # el largo de la contraseña(s) es el indicado en el argumeto 1 CANT_CARAC=$1 vocales="aeiou" # uso ((..)) constructores de doble paréntesis para emular una sintaxis tipo C # en los ciclos for y en el decremento del ciclo anidado ((i--)) # cuando la vocal o consonante no es lo que sigue. # primer ciclo h, total de passwords a generar # segundo ciclo i, total de caracteres por cada contraseña for ((h=1; h <= CANT_PASSW ; h++)) do for ((i=1; i <= CANT_CARAC ; i++)) do m=`expr $i % 2` # si m (el número de caracter actual módulo 2) es 0 (posición par) if [ $m -eq 0 ] then caracter=`mkpasswd -l 1 -d 0 -c 1 -C 0 -s 0` # si es vocal (posición par) entonces imprime caracter, sino regresa i a su valor previo # y vuelve a intentar en esta misma posición if echo "$vocales" | grep -q "$caracter" then echo -n $caracter else ((i--)) fi else caracter=`mkpasswd -l 1 -d 0 -c 1 -C 0 -s 0` if echo "$vocales" | grep -q "$caracter" # si es vocal en posición impar regresa i a su valor previo, si no fue consonante # y se imprime en esta posición then ((i--)) else echo -n $caracter fi fi done echo done echo

El script comienza siempre con una consonante en la posición 1 (impar) y a partir de ahí va generando el password alternando vocal con consonate. Veamos el resultado, se ejecuta con permisos de 700, (chmod 700 gcp.sh):

#> ./gcp.sh 10
qacuxosozi

#> ./gcp.sh 8 5
higaxato
sugufosa
sebomeki
cakupuye
wuyadira

Primer argumento es el largo de la contraseña, si se usa un segundo argumento es la cantidad de contraseñas a generar.

Con un poco de imaginación, puedes extender el script para que genere la contraseña, la aplique o la cambie inmediatamente al usuario indicado y la mande por correo al usuario, todo desde la línea de comandos (aumentando más argumentos claro).



¿Requieres de una instalación o configuración de Linux o sus servicios?
¿Un desarrollo WEB empresarial a la medida?
¿Un curso o capacitación a la medida?
Revisa el sitio de SERVICIOS de LinuxTotal

LinuxTotal en:

Si encuentras útil la información que proveé LinuxTotal, considera realizar un donativo que estimule a seguir proporcionando contenido de calidad y utilidad. Gracias.


Dona a través de paypal::


O a través de bitcoins:


14TNQv5wM3xkSv65gHGQ6s6f8yTZuFTohE
Más artículos de LinuxTotal

Hay ocasiones que los usuarios insisten en poner contraseñas muy débiles de 5 o 6 caracteres a lo más. Y el argumento que dan e....


En ambientes donde varios usuarios usan uno o más sistemas GNU/Linux, es necesario otorgar distintos permisos o privilegios para ....


Muchos validadores de direcciones de correo electrónico devolverán errores cuando se enfrenten con una inusual pero válida dire....


...quien resuelve los nombres de dominio a su correspondiente IP, sería el DNS del proveedor, pero si implementamos un DNS Cache,....


La demanda civil entablada por la empresa SCO contra la gigante IBM causó revuelo entre la comunidad Linux y Open Source cuando e....


Hay distintas maneras de establecer cuanto tiempo un sistema Linux lleva ejecutándose o prendido. Conócelas en este tutorial.....


mysqldump es una utilieria cliente de MySQL que te permite respaldar bases de datos. Aprende por ejemplos como utilizarlo. Puedes....


Linux ofrece multitud de servicios o servidores, estos pueden iniciar o arrancar junto con la carga del sistema o pueden después ....


Hoy en día los usuarios de Windows y Linux tenemos múltiples formas de combinarlos en el mismo equipo. Ya sea que uses el tradic....


Imaginémonos a la empresa "Pato, S.A." que ofrece a sus empleados y clientes el sitio http://www.pato.com/consulta, donde mediant....



Copyright © LinuxTotal.com.mx 2006-2018
info@linuxtotal.com.mx · linuxtotal.com.mx@gmail.com