summaryrefslogtreecommitdiffstats
path: root/admin/Interface/CambiarAcceso
blob: 210b3d80b4a090eb967aea014776beecb1d007ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/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)	mount -t cifs //$REPOIP/ogimages $OGIMG -o $MODE,serverino,acl,username=opengnsys,password=og ;;
esac