#!/bin/bash #______________________________________ # # PARAMETROS RECIBIDOS DESDE EL CLIENTE # $1 modo (admin, user) #______________________________________ # Error si llamada no se realliza desde OpenGnSys Client. PROG=$(basename $0) CALLER=$(ogGetCaller) if [ "$CALLER" != "CrearImagen" -a "$CALLER" != "ConsolaRemota" ]; then ogRaiseError $OG_ERR_NOTEXEC "$CALLER -> $PROG" exit $? fi # Salir si el repositorio está bloquedo (tiene ficheros abiertos). REPOIP=$(ogGetRepoIp) if [ -z "$REPOIP" ]; then ogRaiseError $OG_ERR_NOTFOUND "repo no montado" exit $? fi if ogIsRepoLocked; then ogRaiseError $OG_ERR_LOCKED "repo $REPOIP" exit $? fi # Comprobar protocolo y modo de acceso. PROTO=${ogprotocol:-"smb"} case "$PROTO" in nfs|smb) ;; *) ogRaiseError $OG_ERR_FORMAT "protocolo desconocido $PROTO" exit $? ;; esac case "$1" in admin) MODE="rw,nolock" ;; user) MODE="ro,nolock" ;; *) ogRaiseError $OG_ERR_FORMAT "modo desconocido $1" exit $? ;; esac # Desmontar repositorio y volver a montarlo con el modo adecuado. umount $OGIMG ogEcho info "$PROG: Montar repositorio $REPO por $PROTO en modo $1" case "$PROTO" in nfs) mount -t nfs $REPOIP:$OGIMG $OGIMG -o $MODE ;; smb) PASS=$(grep "^[ ]*\(export \)\?OPTIONS=" /scripts/ogfunctions 2>&1 | \ sed 's/\(.*\)pass=\(\w*\)\(.*\)/\2/') PASS=${PASS:-"og"} mount.cifs //$REPOIP/ogimages $OGIMG -o rw,serverino,acl,username=opengnsys,password=$PASS esac