LinuxParty
Hay muchas razones para usar Linux sobre cualquier otro sistema operativo que sea propietario, como son Windows o Mac, y es que Linux tiene la posibilidad allí donde a tí se te acabe la imaginación, por eso siempre es la mejor opción de escritorio en muchos casos, sobre todo en los más delicados.
El proceso de encriptación de una carpeta no es nueva, ya lo hemos explicado en algunos artículos como:
Crear una carpeta encriptada en Linux al estilo RealCrypt (ya encfs)
Una versión similar para Windows, puedes leer en el artículo:
La encriptación, la vamos a hacer para tener todo seguro, nuestros marcadores, nuestras contraseñas, nuestras visitas, los plugins, etc. Así pues vamos a explicar los pasos para llevarlo a cabo. Para nuestro ejemplo, vamos a usar Mozilla Firefox, por 2 razones, primera porque es un navegador gratuito y el navegador Open Source por excelencia entre los usuarios Linux y segundo, porque siempre vendrá instalado en todos las distribuciones, pero si quiere usar otro navegador, deberá hacer las modificaciones oportunas en el Script abajo desarrollado.
Todos los scripts creados vamos a guardarlos en un directorio "bin" que vamos a crear si no existe, en nuestro directorio $HOME
Necesita tener instalado kdialog, ksshaskpass y los paquetes fuse y fuse-encfs, puede tratar de hacerlo desde una consola shell:
Fedora y derivados (puede usar yum o dnf):
# yum search kdialog
y luego...
# dnf install kdialog
Debian, Ubuntu y derivados:
# aptitude search kdialog
y luego...
# aptitude install kdialog
OpenSUSE y derivados (para instalar use install):
# zypper search kdialog
Arch Linux y derivados:
# pacman -Ss kdialog
después...
# pacman -S kdialog
Estos son los pasos previos antes de hacer el script:
####################################################################################### ####################################################################################### # Creamos una copia de seguridad de los datos. (por si todo sale mal) tar cvfz CopiaSeg-mozilla-2021-04-30-v1.tgz .mozilla/ # Borramos la actual carpeta de mozilla rm -rfv .mozilla # Creamos la carpeta encriptada encfs --extpass=/usr/bin/ksshaskpass $HOME/.mozilla-encrypt $HOME/.mozillaDespués, nos solicitará la contraseña:# Comprobamos que ha sido creado.
df -h # Descomprimimos la copia de seguridad, el parámetro -C es opcional pero así nos
# aseguramos de indicar correctamente la ruta tar xvfz CopiaSeg-mozilla-2021-04-30-v1.tgz -C $HOME/.mozilla/ # Comprobamos.... ll .mozilla-encrypt/ # Ahora crearemos "efirefox.sh" ####################################################################################### ####################################################################################### .
En este ejemplo usaremos "Firefox", así que he creado un script que se llama "efirefox.sh" de "Encriptar" para distinguirlo de cualquier otra versión de otro script que pudiera haber con el mismo nombre, así pues estas son las líneas de código, como verás, debidamente comentadas:
# Si no existe tendrá que crear el directorio bin
mkdir bin
# Creamos el fichero vim bin/efirefox.sh
Después escriba:
chmod a+x bin/efirefox.sh
Yo uso "joe", pero en este ejemplo he puesto el editor "vi" o "vim", para "copiar y pegar", recuerda debes pulsar primero " i " para insertar (empezar a escribir), copias y pegas y sales pulsando la tecla [Esc] y después :wc
#!/bin/bash # (c) LinuxParty.es - Mayo - 2021 - versión 1.02 - Licenciado para libre distribución. # Forzamos desmontar la versión previa, si la hubiera... que no debería... fusermount -u $HOME/.mozilla # Renombramos la versión actual (previa) del directorio con otro nombre,
# y creamos uno vacío. (Que se usará para la versión encriptada)
#
# Comprobación de errores, por reinicio, bloqueo o pérdida de suministro eléctrico. pidof firefox if [ $? -eq 0 ]; then echo "Ya Existe otro firefox funcionado..." kdialog --passivepopup "Ya existe un firefox funcionado..." 10 exit 0 else echo "Ok. No existe otro firefox funcionado" fi if [ -d $HOME/.mozilla-otro ] ; then echo "Existe un antiguo mozilla-otro, implica otro firefox funcionado..." kdialog --passivepopup "Ya existe un firefox funcionado... O hay un directorio \n llamado .mozilla-otro, que debe borrar" 15 kdialog --yesno "¿Desea borrarlo? - Luego vuelva a empezar" if [ $? -eq 0 ]; then rm -rfv .mozilla-otro else echo "Ok. No lo borramos" fi exit 0 else echo "Ok. No existe antiguo directorio .mozilla-otro" fi
# Fin de la comprobación de errores echo "Renombramos .mozilla a .mozilla-otro y creamos un directorio llamado .mozilla para montar la encriptación" mv -fv $HOME/.mozilla $HOME/.mozilla-otro ; mkdir -v $HOME/.mozilla # Solicitamos autorización. Debemos tener instalado KsshAskPass. Búscala en # tu repositorio linux, com dnf, apt-get, search ksshaskpass encfs -v --extpass=/usr/bin/ksshaskpass $HOME/.mozilla-encrypt $HOME/.mozilla # Directorio=`cat .mozilla/firefox/profiles.ini | grep Path | sed s/Path=/''/g | head -n 1` # Comprobamos que ha sido exitosa la contraseña if [ $? -eq 0 ]; then echo "OK EN LA AUTORIZACIÓN" firefox kdialog --passivepopup "Espere por favor..." 10 # Tras terminar, forzamos desmontar echo "Desmontamos la unidad creada para ser montada" fusermount -u $HOME/.mozilla echo "Borramos el directorio vacío creado: .mozilla" rm -rf $HOME/.mozilla # Volvemos a poner la versión previa a la versión montada. renombrando el fichero echo "Renombramos mozilla-otro a mozilla" mv -fv $HOME/.mozilla-otro $HOME/.mozilla kdialog --passivepopup "Terminado..." 5 kdialog --sorry "Gracias por cerrar la apliación.\nTodo cerrado." else echo "FALLO EN LA AUTORIZACIÓN" echo "Borramos el directorio vacío creado: .mozilla" # Borramos el directorio creado para la versión encriptada, que no se va a usar. rm -rf $HOME/.mozilla # Volvemos a poner la versión previa a la versión montada. echo "Renombramos mozilla-otro a mozilla" mv -fv $HOME/.mozilla-otro $HOME/.mozilla firefox fi # Desmontamos si se hubiera montado con la clave correcta echo "FORZAMOS a desmontar si se hubiera montado con la clave correcta (que no debería)" fusermount -u $HOME/.mozilla # Script terminado.
Después puedes crear un acceso directorio en el escritorio sustituyendo la ruta de tu firefox, por "efirefox.sh"
Para rizar el rizo... Pensando en esos usuarios de escritorio... que no tienen porqué saber como funciona el sistema, pero pueden haber tenido problemas para restaurar una sesión encriptada... Ahora vamos a hacer un script que les permita Crear copias de seguridad de los datos Encriptados y Restaurarlo cuando fuera preciso.... (Debes dejar hecha una copia, es tu obligación)
Este es el script:
vim bin/restaura-firefox-encrypt.sh
después escriba:
chmod a+x bin/restaura-firefox-encrypt.sh
#!/bin/bash # Script que se puede utilizar para crear una copia de seguridad de los datos encriptados # Y para restaurarlos, en caso de pérdida, restaurando los datos encriptados. # Obtenemos la fecha y hora de hoy y ahora Fecha=`date +%Y-%m-%d--%Hh-%Mm` # Tratamos de obtener si existe el nombre del fichero de la última copia de seguridad, # para el caso de que quiera ser restaurado. (para agilizar proceso automático) Fichero=`dir -1 -t $HOME/CopiaSeg-mozilla-encrypt* | head -n 1` # Menú que pregunta que quiere hacer, crear o restaurar copia respuesta=$( kdialog --title "¿RESTAURAR COPIA ANTERIOR O CREAR COPIA NUEVA?" \ --radiolist "Selecciona una opción" \ opcion1 "Restaurar copia de segridad" on\ opcion2 "Crear Copia Nueva" off\ opcion3 "Salir" off ) echo $respuesta # Restaurar copia if [ "$respuesta" == "opcion1" ] ; then echo $Fichero # Si no hay fichero de copia, tratamos de elegirlo de forma manual... if [ "$Fichero" == "" ] ; then echo "No hay fichro seleccionado, se requiere acción manual." kdialog --warningcontinuecancel "Vamos a restaurar .mozilla-encrypt, por lo que ahora deberá buscar\n\ny elegir un fichero que puede llamarse CopiaSeg-mozilla-encrypt-2021-XX-YY.tgz\n\nO algo parecido para restaurar el directorio." Fichero=`kdialog --getopenfilename $HOME/ '*.tgz'` if [ "$Fichero" == "" ] ; then kdialog --passivepopup "Cancelado..." 5 exit 0 fi else # Elegimos el fichero $Fichero, que era la copia más reciente. echo "Fichero seleccionado: $Fichero" fi kdialog --passivepopup "Restaurando fichero..." 5 # Hacemos una copia de la versión previa mv .mozilla-encrypt .mozilla-encrypt-$Fecha # Restaurar... tar xvfz $Fichero -C / kdialog --passivepopup "RESTAURADO. (VIEJA COPIA RENOMBADA COMO: .mozilla-encrypt-$Fecha)" 5 echo "Se operó con el fichero: $Fichero" echo "Terminado" fi # Hacer una nueva copia de segridad if [ "$respuesta" == "opcion2" ] ; then kdialog --passivepopup "Comienzo..." 5 tar cvfz CopiaSeg-mozilla-encrypt-$Fecha.tgz $HOME/.mozilla-encrypt kdialog --passivepopup "Concluido..." 5 fi # Salir.
Creamos el archivo "Desktop" en y para el escritorio: RESTAURAR-FIREFOX.desktop
[Desktop Entry] Comment[es_ES]=Restaurar Firefox Comment=Restaurar Firefox Exec=$HOME/bin/restaura-firefox-encrypt.sh GenericName[es_ES]=Restaurar Firefox GenericName=Restaurar Firefox Icon=firefox MimeType= Name[es_ES]=RESTAURAR FIREFOX Name=Enlace a aplicación Path= StartupNotify=true Terminal=false TerminalOptions= Type=Application X-DBUS-ServiceName= X-DBUS-StartupType= X-KDE-SubstituteUID=false X-KDE-Username=
-
Scripting
- Iniciar una aplicación o un programa automáticamente desde el Cron en Linux
- Operaciones matemáticas en Shell Scripts
- 30 formas de validar archivos de configuración o scripts en Linux
- Operaciones artiméticas en Shell Scripts
- Cómo intercambiar el contenido de dos archivos en Linux
- Buscar directorios vacíos en Linux y borrarlos si procede.
- Shell Script Linux: Renombra quitando espacios
- Usar con crontab - último sábado del mes
- Shell Script de Linux para analizar un Fichero Access.log
- Analizar ficheros log de Linux con Scripts
- woof Código fuente
- Como tener seguro, protegido y encriptado tu Navegador Web Firefox (versión mejorada - versión 3)
- Arrays en Bash y Loops: iterar a través de los valores de la matriz
- Pasar una variable a AWK mediante la Shell.
- System Tar and Restore: un versátil script de copia de seguridad del sistema para Linux