Nuestro primer proyecto : bóveda de contraseñas en bash
bash
Ahora que tenemos una buena pequeña base en bash, vamos a iniciar con un proyecto rápido: una bóveda de contraseñas a la que solo nosotros podremos acceder con una clave maestra, como si fuera un gestor promedio, pero ahora simple.
Este proyecto es para reforzar el conocimiento, por lo que primero inténtalo hacer por tu cuenta, si no puedes, recurre al articulo denuevo.
iniciamos creando el archivo:
touch gestor.sh
chmod +x gestor.shasignamos los permisos necesarios para evitar la lectura del archivo, ya que ahí tendremos nuestra clave maestra:
chmod 700 gestor.shEsto da permisos solo al dueño para leer, escribir y ejecutar.
ahora debemos empezar a escribir código abriendo el archivo:
nano gestor.shagregamos el shebang:
#!/bin/bashiniciamos declarando algunas variables como la clave:
#!/bin/bash
clave_maestra="12345" # pon la clave de tu preferenciallegamos a las entradas de texto, se le pide al usuario introducir la clave (sin validaciones aun):
#!/bin/bash
clave_maestra="12345" # pon la clave de tu preferencia
read -p "Escribe tu Clave Maestra para acceder:" clave_escritaahora, vamos a agregar una comprobación que busque si las 2 claves (la introducida por el usuario y la definida en el código) coinciden:
#!/bin/bash
clave_maestra="12345" # pon la clave de tu preferencia
read -p "Escribe tu Clave Maestra para acceder:" clave_escrita
if [ "$clave_maestra" == "$clave_escrita" ]; then
echo "[+] la clave introducida es correcta, accediendo a la boveda.."
else
echo "[!] la clave introducida es incorrecta"
filo meteremos en un bucle:
#!/bin/bash
while true; do
clave_maestra="12345" # pon la clave de tu preferencia
read -p "Escribe tu Clave Maestra para acceder:" clave_escrita
if [ "$clave_maestra" == "$clave_escrita" ]; then
echo "[+] la clave introducida es correcta, accediendo a la boveda.."
else
echo "[!] la clave introducida es incorrecta"
fi
doney ahora en una función para organizar mas los procesos:
#!/bin/bash
while true; do
clave_maestra="12345" # pon la clave de tu preferencia
read -p "Escribe tu Clave Maestra para acceder:" clave_escrita
comprobar_clave() {
if [ "$clave_maestra" == "$clave_escrita" ]; then
echo "[+] la clave introducida es correcta, accediendo a la boveda.."
else
echo "[!] la clave introducida es incorrecta"
fi
}
donelas primeras 2 líneas despues del while las pasamos abajo, porque despues abajo llamaremos a la función de comprobar clave
#!/bin/bash
while true; do
comprobar_clave() {
if [ "$clave_maestra" == "$clave_escrita" ]; then
echo "[+] la clave introducida es correcta, accediendo a la boveda.."
else
echo "[!] la clave introducida es incorrecta"
fi
}
clave_maestra="12345" # pon la clave de tu preferencia
read -p "Escribe tu Clave Maestra para acceder:" clave_escrita
donenos aprovechamos de argumentos posicionales para que el script de una bienvenida al usuario
#!/bin/bash
while true; do
comprobar_clave() {
if [ "$clave_maestra" == "$clave_escrita" ]; then
echo "[+] la clave introducida es correcta, accediendo a la boveda.."
else
echo "[!] la clave introducida es incorrecta"
fi
}
echo -e "\nBienvenido a $0!\n"
clave_maestra="12345" # pon la clave de tu preferencia
read -p "Escribe tu Clave Maestra para acceder:" clave_escrita
comprobar_clave
done$0: nos da el nombre del script
también hemos llamado a la función que comprueba las claves.
lo que nos falta es agregar la informacion a guardar en la boveda:
#!/bin/bash
while true; do
comprobar_clave() {
if [ "$clave_maestra" == "$clave_escrita" ]; then
echo "[+] la clave introducida es correcta, accediendo a la boveda.."
echo "mi username es pepe y mi password pepe123"
else
echo "[!] la clave introducida es incorrecta"
fi
}
echo -e "\nBienvenido a $0!\n"
clave_maestra="12345" # pon la clave de tu preferencia
read -p "Escribe tu Clave Maestra para acceder:" clave_escrita
comprobar_clave
doneguardamos el script y lo ultimo es quitarnos el permiso a nosotros de ver y escribir el archivo, para potenciar la seguridad:
chmod p-rw gestor.shahora que lo podemos ejecutar:
./gestor.shdeberi aparecer en la consola:
Bienvenido a gestor.sh!
Escribe tu Clave Maestra para acceder: (introducimos la clave aqui)
[+] la clave introducida es correcta, accediendo a la boveda..
mi username es pepe y mi password pepe123si llegaste hasta aquí: te felicito, muy bien hecho, tanto si lo hiciste guiado o solo, de cualquier forma esto fue de gran ayuda para practicar un poco lo aprendido.
Aclaro que este script no es 100% seguro, pues cualquier usuario en la cuenta del propietario podrá leerlo y modificarlo e incluso hay intentos de login infinitos, pero eso, se lo quiero dejar de tarea a ustedes para que refuercen mas su conocimiento:
implementen un máximo de 5 intentos de login antes de bloquear temporalmente el programa con
sleep
Last updated