[MODIFIED] Cambio para manejo de perfil de desarrollador

- Se cambia la libreria gpg a developers
- Se cambia el comando gpg_backup.sh a profile_backup.sh
- Se hacen mejoras a la documentación del sistema
- El respaldo ahora incluye las carpetas .ssh, .gnugp y .gitconfig del usuario
- Otros cambios menores
This commit is contained in:
Mauro Rosero P. 2024-12-14 16:20:43 -05:00
parent ce31c75cf9
commit 6210bd07f3
Signed by: mrosero
GPG key ID: 83BD2A5F674B7E26
11 changed files with 111 additions and 41 deletions

View file

@ -45,26 +45,19 @@ Nota: En determinadas versiones, las actualizaciones a partir de los repositorio
(pendiente)
### GESTIONANDO FIRMA GPG
### GESTIONANDO PERIFL DE DESARROLLADOR
#### Inicialización de configuración GPG
#### Configuración por defecto de comportamineto GPG
Como un requisito de nuestra plataforma, todos los desarrolladores deberán contar, por lo menos, con una clave GPG, que se utilizará para firmar o decifrar archivos, correos u otros. Esto se hará con el uso del comando gpg (previamente instalado con la ejecución de bin/boostrap.sh).
En este paso estableceremos la configuración por defecto de GPG:
En la carpeta $HOME/devs/bin/config existe un archivo de configuración gpg.config que contiene los parámetros de comportamiento por defecto para GNUGP que son los recomendados para el uso de la plataforma. Si tienes alguno en uso, está función le sacará previamente una copia y aplicará el de la plataforma siguiendo los siguientes pasos:
$ cd $HOME/devs
$ bin/gpg_init.sh
#### Creación de clave GPG
#### Copia de básica del perfil del desarrollador
(pendiente)
#### Copia de seguridad de claves GPG
Para realizar una copia de seguridad de su configuración y claves GPG, haga lo siguiente:
Para realizar una copia de seguridad de sus configuraciones de desarrollador que involucran claves GPG, claves SSH, configuración GIT y otros, ejecute los siguientes comandos:
$ cd $HOME/devs
$ bin/gpg_backup.sh
Nota: Esto creará una carpeta por defecto $HOME/secure/backups donde se almacenaran los backups corresponidentes. Solo se requiere se hagan backups cuando se hagan cambios a las claves GPG.

View file

@ -1,6 +1,7 @@
#!/bin/bash
#
# Library: base.lib
# Description: Base Developers Library
# Modified: 2024/11/30 15:27:00
# Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>]
#

View file

@ -1,6 +1,7 @@
#!/bin/bash
#
# Library: $HOME/devs/bin/lib/bootstrap.lib
# Library: bootstrap.lib
# Description: Bootstrap Developers Library
# Modified: 2024/11/30 15:27:00
# Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>]
#

View file

@ -1,6 +1,7 @@
#!/bin/bash
#
# Library: console.lib
# Description: Console Developers Library
# Modified: 2024/12/04 12:27:00
# Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>]
#

View file

@ -1,6 +1,7 @@
#!/bin/bash
#
# Library: gpg.lib
# Library: developers.lib
# Description: Developers Tools Library
# Modified: 2024/12/09 08:20:00
# Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>]
#
@ -34,8 +35,8 @@ SQL_GPG_SUBKEYS="${DB_GPG_SUBKEYS}.sql"
# Test library
function gpglib_test() {
echo "GPG Library loaded!"
function devslib_test() {
echo "Developers Library loaded!"
exit 1
}
@ -88,7 +89,7 @@ function gpg_backup_token() {
if [[ ! -e $archivo_token ]]
then
local BACKUP_TOKEN=$(uuidgen)
local BACKUP_TOKEN=$(uuidgen | base64 )
echo "$BACKUP_TOKEN" > "$SECRET_FILE"
chmod 600 "$SECRET_FILE"
fi
@ -97,7 +98,7 @@ function gpg_backup_token() {
}
# Local backup of gpp keys
# FULL EXTENDED GNUGP BACKUP
function gpg_backup() {
local DB_BACKUP=$1
@ -109,7 +110,7 @@ function gpg_backup() {
# Check if backup configuration file exists
if [ ! -f $BIN_CONFIG/$GPG_BACKUP_CFG ]
then
return 10
return 10
fi
local LOCAL_BACKUP=$HOME/$(cat < $BIN_CONFIG/$GPG_BACKUP_CFG)
@ -131,12 +132,12 @@ function gpg_backup() {
gpg_backup_token "${LOCAL_BACKUP}/$GPGP_BACKUP_SECRET"
# Get secret backup
ZPASSWORD=$(cat < "${LOCAL_BACKUP}/$GPGP_BACKUP_SECRET")
ZPASSWORD=$(echo "$(cat < "${LOCAL_BACKUP}/$GPGP_BACKUP_SECRET")" | base64 -d)
if [ -z "${ZPASSWORD}" ]; then
return 13
return 13
fi
# Exportar el anillo de claves GPG a un archivo de respaldo temporal
# Export full backup keys to backup work path
local TMP_PATH=$(mktemp -d)
local TMP_FILE="gpg.bak"
gpg --export-options backup -o "${TMP_PATH}/${TMP_FILE}" --export
@ -157,10 +158,10 @@ function gpg_backup() {
return $rc
fi
# Copiar los archivos de revocación
mkdir ${TMP_PATH}/gnugp
# Copy full .gnugp for backup
mkdir ${TMP_PATH}/.gnugp
if [ $? -eq 0 ]; then
cp -rf $GNUGP_PATH/* ${TMP_PATH}/gnugp
cp -rf $GNUGP_PATH/* ${TMP_PATH}/.gnugp
rc=$?
if [ $rc -ne 0 ]
then
@ -169,7 +170,30 @@ function gpg_backup() {
fi
fi
# Cambiar el directorio de trabajo a la carpeta temporal para poder hacer el empaquetamiento zip
# Copy full .ssh for backup
mkdir ${TMP_PATH}/.ssh
if [ $? -eq 0 ]; then
cp -rf $HOME/.ssh/* ${TMP_PATH}/.ssh
rc=$?
if [ $rc -ne 0 ]
then
rm -rf "${TMP_PATH}"
return $rc
fi
fi
# Copy .giconfig for user to backup
if [ -f $HOME/.gitconfig ]; then
cp -f $HOME/.gitconfig ${TMP_PATH}/
rc=$?
if [ $rc -ne 0 ]
then
rm -rf "${TMP_PATH}"
return $rc
fi
fi
# Change backup work path to make zip archive
cd "${TMP_PATH}"
# Comprimir el archivo de respaldo en un archivo ZIP protegido con contraseña
@ -186,3 +210,52 @@ function gpg_backup() {
return 0
}
# RESTORE .GNUGP PATH
function gpg_restore() {
local BIN_CONFIG=$1
local BACKUP_ZIP=$2
local rc=0
# Check provided backup zip filename
if [ -z "$BACKUP_ZIP" ]; then
return 10
fi
# Check if backup zip file exists
if [ ! -f "$BACKUP_ZIP" ]
then
return 11
fi
# Check if backup configuration file exists
if [ ! -f $BIN_CONFIG/$GPG_BACKUP_CFG ]
then
return 12
fi
local LOCAL_BACKUP=$HOME/$(cat < $BIN_CONFIG/$GPG_BACKUP_CFG)
# Check if backup path exist
if [ -z "$LOCAL_BACKUP" ]; then
return 13
fi
# Get secret backup
ZPASSWORD=$(echo "$(cat < "${LOCAL_BACKUP}/$GPGP_BACKUP_SECRET")" | base64 -d)
if [ -z "${ZPASSWORD}" ]; then
return 14
fi
# Restore unzip full .gnugp path
unzip -qqo -P "$ZPASSWORD" "$BACKUP_ZIP" ".gnugp/*" -d $HOME
rc=$?
if [ $rc -ne 0 ]; then
return $rc
fi
return 0
}

View file

@ -1,6 +1,7 @@
#!/bin/bash
#
# Library: sqlite.lib
# Description: SQLITE Developers Library
# Modified: 2024/12/09 08:20:00
# Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>]
#
@ -80,9 +81,9 @@ function sqlite_dump() {
do
# Check if table exists
EXIST=$(sqlite3 $DATABASE "SELECT name FROM sqlite_master WHERE type='table' AND name='$TABLE';")
if [ "$EXIST" == "$TABLE" ]; then
sqlite3 "$DATABASE" .dump "$TABLE" >> "$DUMP_FILE"
clear
sqlite3 "$DATABASE" ".dump $TABLE" >> $DUMP_FILE
rc=$?
if [ $rc -gt 1 ]; then
return $rc

View file

@ -1,7 +1,7 @@
#!/usr/bin/env bash
#bash script : bootstrap.es
#apps : Personal Developer Utilities
#description : Bootstrap Translate Messages (es)
#apps : Bootstrap Functions Library
#description : Translate Messages (es)
#author : MRP/mrp - Mauro Rosero P.
#company email : mauro@rosero.one
#personal email : mauro.rosero@gmail.com

View file

@ -1,7 +1,7 @@
#!/usr/bin/env bash
#bash script : container.es
#apps : Podman/Docker Container Developer Utilities
#description : Container Translate Messages (es)
#apps : Containers Functions Library
#description : Translate Messages (es)
#author : MRP/mrp - Mauro Rosero P.
#company email : mauro@rosero.one
#personal email : mauro.rosero@gmail.com

View file

@ -1,7 +1,7 @@
#!/usr/bin/env bash
#bash script : gpg.es
#apps : GPG Developer Utilities
#description : GPG Translate Messages (es)
#bash script : developers.es
#apps : Developers Functions Library
#description : Translate Messages (es)
#author : MRP/mrp - Mauro Rosero P.
#company email : mauro@rosero.one
#personal email : mauro.rosero@gmail.com

View file

@ -1,7 +1,7 @@
#!/usr/bin/env bash
#bash script : head.es
#apps : MRosero Personal Developer Utilities
#description : Head Translate Messages (es)
#apps : Base Functions Library
#description : Translate Messages (es)
#author : MRP/mrp - Mauro Rosero P.
#company email : mauro@rosero.one
#personal email : mauro.rosero@gmail.com

View file

@ -1,6 +1,6 @@
#!/bin/bash
#
# gpg_backup.sh
# profile_backup.sh
# Modified: 2024/12/09 10:27:00
# Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>]
#
@ -37,15 +37,15 @@ source $BIN_HOME/$BIN_LIBS/console.lib
source $BIN_HOME/$BIN_LIBS/sqlite.lib
#sqlitelib_test
# LOAD GPG BASH LIBRARY
source $BIN_HOME/$BIN_LIBS/gpg.lib
# LOAD DEVELOPERS BASH LIBRARY
source $BIN_HOME/$BIN_LIBS/developers.lib
#gpglib_test
# Load head messages
load_messages $BIN_HOME $BIN_MESG $BIN_LANG "head"
# Load gpg messages
load_messages $BIN_HOME $BIN_MESG $BIN_LANG "gpg"
load_messages $BIN_HOME $BIN_MESG $BIN_LANG "developers"