#!/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 ! $(ogCheckStringInGroup "$CALLER" "CrearImagen ConsolaRemota CrearImagenBasica CrearSoftIncremental"); 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 # Unidad organizativa [ "$ogunit" != "" ] && OGUNIT="/$ogunit" ogEcho info "$PROG: Montar repositorio $REPO por $PROTO en modo $1" case "$PROTO" in nfs) mount -t nfs $REPOIP:$OGIMG$OGUNIT $OGIMG -o $MODE ;; smb) PASS=$(grep "^[ ]*\(export \)\?OPTIONS=" /scripts/ogfunctions 2>&1 | \ sed 's/\(.*\)pass=\(\w*\)\(.*\)/\2/') PASS=${PASS:-"og"} mount.cifs //$REPOIP/ogimages$OGUNIT $OGIMG -o $MODE,serverino,acl,username=opengnsys,password=$PASS esac