summaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
Diffstat (limited to 'admin')
-rwxr-xr-xadmin/Interface/CambiarAcceso2
-rwxr-xr-xadmin/Interface/CrearImagenBasica16
-rwxr-xr-xadmin/Interface/CrearSoftIncremental18
-rwxr-xr-xadmin/Sources/Services/ogAdmRepoAux19
4 files changed, 32 insertions, 23 deletions
diff --git a/admin/Interface/CambiarAcceso b/admin/Interface/CambiarAcceso
index 64516e4f..73275eef 100755
--- a/admin/Interface/CambiarAcceso
+++ b/admin/Interface/CambiarAcceso
@@ -9,7 +9,7 @@
# Error si llamada no se realliza desde OpenGnSys Client.
PROG=$(basename $0)
CALLER=$(ogGetCaller)
-if [ "$CALLER" != "CrearImagen" -a "$CALLER" != "ConsolaRemota" ]; then
+if ! $(ogCheckStringInGroup "$CALLER" "CrearImagen ConsolaRemota CrearImagenBasica CrearSoftIncremental"); then
ogRaiseError $OG_ERR_NOTEXEC "$CALLER -> $PROG"
exit $?
fi
diff --git a/admin/Interface/CrearImagenBasica b/admin/Interface/CrearImagenBasica
index f89ef401..8aaf5aa8 100755
--- a/admin/Interface/CrearImagenBasica
+++ b/admin/Interface/CrearImagenBasica
@@ -51,13 +51,21 @@
# Registro de inicio de ejecución
ogEcho log session "$MSG_INTERFACE_START $0 $*"
+ # Si el destino es REPO y el cliente no está en modo "admin"; activar repositorio para escritura,
+ PATH=$PATH:$(dirname $0)
+ CLIENTIP=$(ogGetIpAddress)
+ [ "$4" == "$CLIENTIP" ] && DEST=CACHE || DEST=REPO
+ if [ "$DEST" == "REPO" -a "$boot" != "admin" ]; then
+ CambiarAcceso admin &>> $OGLOGFILE
+ RETVAL=$?
+ [ $RETVAL -gt 0 ] && exit $RETVAL
+ fi
+
if [ $7 -eq 1 ]; then
#sincronizacion1
ogCrearImagenBasica "$@"
RETVAL=$?
fi
-
-
if [ $7 -eq 2 ]; then
# Sincronizacion2
@@ -72,13 +80,15 @@
[ $DELFILE -eq 1 ] && export ogrsyncdel=true || export ogrsyncdel=false
[ $COMPRESS -eq 1 ] && export ogrsyncz=true || export ogrsyncz=false
- [ "$4" == "0.0.0.0" ] && DEST="CACHE" || DEST="REPO"
+ # [ "$4" == "0.0.0.0" ] && DEST="CACHE" || DEST="REPO"
createBaseImage $1 $2 $DEST "$3"
RETVAL=$?
fi
+ # Si estamos en modo user montamos el repositorio en modo lectura.
+ [ "$DEST" == "REPO" -a "$boot" != "admin" ] && CambiarAcceso user
# Registro de fin de ejecución
ogEcho log session "$MSG_INTERFACE_END $RETVAL"
diff --git a/admin/Interface/CrearSoftIncremental b/admin/Interface/CrearSoftIncremental
index 74edc4b5..fc29451e 100755
--- a/admin/Interface/CrearSoftIncremental
+++ b/admin/Interface/CrearSoftIncremental
@@ -50,6 +50,17 @@
# Registro de inicio de ejecución
ogEcho log session "$MSG_INTERFACE_START $0 $*"
+
+ # Si el destino es REPO y el cliente no está en modo "admin"; activar repositorio para escritura,
+ PATH=$PATH:$(dirname $0)
+ CLIENTIP=$(ogGetIpAddress)
+ [ "$4" == "$CLIENTIP" ] && DEST=CACHE || DEST=REPO
+ if [ "$DEST" == "REPO" -a "$boot" != "admin" ]; then
+ CambiarAcceso admin &>> $OGLOGFILE
+ RETVAL=$?
+ [ $RETVAL -gt 0 ] && exit $RETVAL
+ fi
+
if [ $8 -eq 1 ]; then
#sincronizacion1
ogCrearSoftIncremental "$@"
@@ -71,13 +82,16 @@
[ $COMPRESS -eq 1 ] && export ogrsyncz=true || export ogrsyncz=false
# REPOSITORIO: Si la ip es la del propio equipo CACHE, si no REPO
- CLIENTIP=$(ogGetIpAddress)
- [ "$4" == "$CLIENTIP" ] && DEST=CACHE || DEST=REPO
+ #CLIENTIP=$(ogGetIpAddress)
+ #[ "$4" == "$CLIENTIP" ] && DEST=CACHE || DEST=REPO
createDiffImage $1 $2 $DEST "$3" "$5"
RETVAL=$?
fi
+ # Si estamos en modo user montamos el repositorio en modo lectura.
+ [ "$DEST" == "REPO" -a "$boot" != "admin" ] && CambiarAcceso user
+
# Registro de fin de ejecución
ogEcho log session "$MSG_INTERFACE_END $RETVAL"
diff --git a/admin/Sources/Services/ogAdmRepoAux b/admin/Sources/Services/ogAdmRepoAux
index 1884f5d5..05bac0ce 100755
--- a/admin/Sources/Services/ogAdmRepoAux
+++ b/admin/Sources/Services/ogAdmRepoAux
@@ -231,7 +231,7 @@ case "$PARM1" in
file $IMGFILE |grep -i -e " ext4 filesystem " 2>&1 > /dev/null || exit 0
[ -d $DIRMOUNT ] || mkdir $DIRMOUNT
- mountImage "$IMGFILE" "$DIRMOUNT" || (echolog "Error al montar la imagen"; exit 1)
+ mountImage "$IMGFILE" "$DIRMOUNT" || (echolog "Error al montar la imagen $IMGFILE"; exit 1)
# Si el espacio libre menor que 500Mb desmontamos la imagen y nos salimos
AVAILABLE=$(df -k|grep $DIRMOUNT|awk '{print $4}')
@@ -259,31 +259,16 @@ case "$PARM1" in
# Calculamos el tamaño final del archivo
INTSIZE=$(df -k|grep "$DIRMOUNT"|awk '{print $2}')
let EXTSIZE=$INTSIZE+$EDGESIZE
- umount $DIRMOUNT
+ umount $DIRMOUNT || (echolog "Error al desmontar la imagen $IMGFILE"; exit 1)
# Si existe dispositivo loop lo borramos.
[ $LOOPDEVICE ] && losetup -a| grep $LOOPDEVICE &> /dev/null && losetup -d $LOOPDEVICE
# Corto el archivo al tamaño del sistema de ficheros
echo "truncate --size=\"$EXTSIZE\"k $IMGFILE"
echolog "truncate --size=\"$EXTSIZE\"k $IMGFILE"
truncate --size="$EXTSIZE"k $IMGFILE
-
rmdir $DIRMOUNT
;;
- LOCK_IMAGE)
- # Bloquea el archivo de la imagen.
- #1 LOCK_IMAGE
- #2 Nombre_Imagen.extension
- echolog "Bloqueamos imagen $REPODIR$PARM2"
- touch "$REPODIR$PARM2.lock"
- ;;
- UNLOCK_IMAGE)
- # Desloquea el archivo de la imagen.
- #1 UNLOCK_IMAGE
- #2 Nombre_Imagen.extension
- echolog "Desbloqueamos imagen $REPODIR$PARM2"
- rm -f "$REPODIR$PARM2.lock"
- ;;
default)
echolog "Solicitud con parametros \"$PARM\" no realizada, no registrada o con errores"
;;