[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) (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 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:
En este paso estableceremos la configuración por defecto de GPG:
$ cd $HOME/devs $ cd $HOME/devs
$ bin/gpg_init.sh $ bin/gpg_init.sh
#### Creación de clave GPG #### Copia de básica del perfil del desarrollador
(pendiente) 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:
#### Copia de seguridad de claves GPG
Para realizar una copia de seguridad de su configuración y claves GPG, haga lo siguiente:
$ cd $HOME/devs $ cd $HOME/devs
$ bin/gpg_backup.sh $ 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 #!/bin/bash
# #
# Library: base.lib # Library: base.lib
# Description: Base Developers Library
# Modified: 2024/11/30 15:27:00 # Modified: 2024/11/30 15:27:00
# Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>]
# #

View file

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

View file

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

View file

@ -1,6 +1,7 @@
#!/bin/bash #!/bin/bash
# #
# Library: gpg.lib # Library: developers.lib
# Description: Developers Tools Library
# Modified: 2024/12/09 08:20:00 # Modified: 2024/12/09 08:20:00
# Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>]
# #
@ -34,8 +35,8 @@ SQL_GPG_SUBKEYS="${DB_GPG_SUBKEYS}.sql"
# Test library # Test library
function gpglib_test() { function devslib_test() {
echo "GPG Library loaded!" echo "Developers Library loaded!"
exit 1 exit 1
} }
@ -88,7 +89,7 @@ function gpg_backup_token() {
if [[ ! -e $archivo_token ]] if [[ ! -e $archivo_token ]]
then then
local BACKUP_TOKEN=$(uuidgen) local BACKUP_TOKEN=$(uuidgen | base64 )
echo "$BACKUP_TOKEN" > "$SECRET_FILE" echo "$BACKUP_TOKEN" > "$SECRET_FILE"
chmod 600 "$SECRET_FILE" chmod 600 "$SECRET_FILE"
fi fi
@ -97,7 +98,7 @@ function gpg_backup_token() {
} }
# Local backup of gpp keys # FULL EXTENDED GNUGP BACKUP
function gpg_backup() { function gpg_backup() {
local DB_BACKUP=$1 local DB_BACKUP=$1
@ -109,7 +110,7 @@ function gpg_backup() {
# Check if backup configuration file exists # Check if backup configuration file exists
if [ ! -f $BIN_CONFIG/$GPG_BACKUP_CFG ] if [ ! -f $BIN_CONFIG/$GPG_BACKUP_CFG ]
then then
return 10 return 10
fi fi
local LOCAL_BACKUP=$HOME/$(cat < $BIN_CONFIG/$GPG_BACKUP_CFG) 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" gpg_backup_token "${LOCAL_BACKUP}/$GPGP_BACKUP_SECRET"
# Get secret backup # Get secret backup
ZPASSWORD=$(cat < "${LOCAL_BACKUP}/$GPGP_BACKUP_SECRET") ZPASSWORD=$(echo "$(cat < "${LOCAL_BACKUP}/$GPGP_BACKUP_SECRET")" | base64 -d)
if [ -z "${ZPASSWORD}" ]; then if [ -z "${ZPASSWORD}" ]; then
return 13 return 13
fi 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_PATH=$(mktemp -d)
local TMP_FILE="gpg.bak" local TMP_FILE="gpg.bak"
gpg --export-options backup -o "${TMP_PATH}/${TMP_FILE}" --export gpg --export-options backup -o "${TMP_PATH}/${TMP_FILE}" --export
@ -157,10 +158,10 @@ function gpg_backup() {
return $rc return $rc
fi fi
# Copiar los archivos de revocación # Copy full .gnugp for backup
mkdir ${TMP_PATH}/gnugp mkdir ${TMP_PATH}/.gnugp
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
cp -rf $GNUGP_PATH/* ${TMP_PATH}/gnugp cp -rf $GNUGP_PATH/* ${TMP_PATH}/.gnugp
rc=$? rc=$?
if [ $rc -ne 0 ] if [ $rc -ne 0 ]
then then
@ -169,7 +170,30 @@ function gpg_backup() {
fi fi
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}" cd "${TMP_PATH}"
# Comprimir el archivo de respaldo en un archivo ZIP protegido con contraseña # Comprimir el archivo de respaldo en un archivo ZIP protegido con contraseña
@ -186,3 +210,52 @@ function gpg_backup() {
return 0 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 #!/bin/bash
# #
# Library: sqlite.lib # Library: sqlite.lib
# Description: SQLITE Developers Library
# Modified: 2024/12/09 08:20:00 # Modified: 2024/12/09 08:20:00
# Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>]
# #
@ -80,9 +81,9 @@ function sqlite_dump() {
do do
# Check if table exists # Check if table exists
EXIST=$(sqlite3 $DATABASE "SELECT name FROM sqlite_master WHERE type='table' AND name='$TABLE';") EXIST=$(sqlite3 $DATABASE "SELECT name FROM sqlite_master WHERE type='table' AND name='$TABLE';")
if [ "$EXIST" == "$TABLE" ]; then if [ "$EXIST" == "$TABLE" ]; then
sqlite3 "$DATABASE" .dump "$TABLE" >> "$DUMP_FILE" clear
sqlite3 "$DATABASE" ".dump $TABLE" >> $DUMP_FILE
rc=$? rc=$?
if [ $rc -gt 1 ]; then if [ $rc -gt 1 ]; then
return $rc return $rc

View file

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

View file

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

View file

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

View file

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

View file

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