Script con funciones bash y encf con password automático

Extracto:

Usualmente manejo tres carpetas que encripto con encfs, a las que llamaré para este arículo ‘aikido’, ‘judo’ y ‘karate’, cada una de ellas con su propio password. En este script podemos ver cómo mediante una función en bash puede automatizarse este proceso. Es importante compilar luego con el comando shc para ofuscar el código fuente, es decir, las palabras de paso.

@pedroruizhidalg― Trabajo solo. Esto, con sus inconvenientes, también tiene la ventaja de permitirme ciertas licencias en cuanto a la seguridad dentro de mi propio equipo. Tengo mi ordenador preparado para ejecutar scripts propios, y también ejecuto el comando shc para poder “compilar” (sí, entre comillas) mis códigos bash, de forma que el código fuente fuente quede ofuscado. Por lo que automatizar un script que posea passwords no me supone más problema que impedir el acceso de extraños a mi equipo.

Descripción

Mediante este script puedo montar los volúmenes sin necesidad de añadir más código, ni passwords.

#!/bin/bash

:<<COMMENT

 Subject: this script allows to mount few directories with encfs.
 Author: Pedro Ruiz Hidalgo
 Date: 2017-15-03

COMMENT

# COLORES

tab="\t"
RED='\033[0;31m'
BOLD='\033[1m'
NC='\033[0m'

# FUNCION MONTAJE

function montaje()
{
 local dircripto=$1
 local dirclaro=$2
 local passwd=$3

 echo $passwd | encfs -S $dircripto $dirclaro
}

# PROCESO
echo -e "Selecciona opción "
echo -e "${BOLD}1$NC) Judo"
echo -e "${BOLD}2$NC) Aikido"
echo -e "${BOLD}3$NC) Karate"
read -p "Introduce tu opción: " -n 1 -r

case $REPLY in
 1)
 echo -e "\nEstás montando ${BOLD}Judo$NC"
 montaje '/home/pedro/judo' '/home/pedro/judo_' 'passworddejudo'

 exit $?
 ;;
 2)
 echo -e "\nEstás montando ${BOLD}aikido$NC"
 montaje '/home/pedro/aikido' '/home/pedro/aikido_' 'passworddeaikido'
 exit $?
 ;;
 3)
 echo -e "\nEstás montando ${BOLD}Karate$NC"
 montaje '/home/pedro/Documentos/karate' '/home/pedro/Documentos/karate_' 'passworddekarate'
 exit $?
esac

Ejecución

La primera linea es la llamada “shebang” que permite comunicar al sistema qué intérprete debe ejecutar el presente script. Luego viene un comentario multilínea de bash para identificar el archivo fuente. En la sección COLORES se describen los colores a usar en el script. En FUNCIÓN MONTAJE, se describen tres variables locales, la primera de ellas la incluiré en la variable dircripto: el directorio que contiene los archivos encriptados. La segunda de las variables la moveré a dirclaro: el directorio que me permite ver los archivos desencriptados. La tercera es para el password. Cuando tengo las tres variables uso la función echo con la variable password y una tubería hacia el comando encfs con el argumento -S, que permite recibir el password desde fuera del propio comando encfs.

Tras eso, no es más que mostrar por pantalla unas opciones y evaluarlas en un case-esac, dependiendo del número que haya elegido se montará una u otra carpetas.

Es fácil crear otro script para que desmonte los directorios mediante:

$ fusermount -u $dirclaro

 

Epílogo

Espero y deseo que este artículo haya sido de utilidad. Es muy importante para la continuación de trabajos de calidad recibir algún tipo de feedback por parte de los lectores: es decir, responde con comentarios, evalúa la calidad del trabajo con el sistema de estrellas, comparte con tus redes sociales, da me gusta, marca el blog como favorito. Son pequeños gestos que ayudan a mantener el trabajo de creación.

 #aboutpedroruizhidalgo

♻ miotroblogsite ahorra papel
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: