[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:
parent
ce31c75cf9
commit
6210bd07f3
11 changed files with 111 additions and 41 deletions
17
README.md
17
README.md
|
@ -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.
|
||||
|
|
|
@ -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>]
|
||||
#
|
||||
|
|
|
@ -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>]
|
||||
#
|
||||
|
|
|
@ -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>]
|
||||
#
|
||||
|
|
|
@ -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
|
||||
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
||||
|
Loading…
Reference in a new issue