blob: ac920c00ff8dc0d37f962467583c92a3ec50938f (
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
#!/bin/bash
# setsmbpass: cambia la contraseña del usuario del cliente para acceder a los
# servicios Samba.
# Nota: se modifica el Initrd del cliente y se cambia la clave en el servidor.
# Nota: no se modifica el usuario de acceso (usuario "opengnsys").
# Uso: setsmbpass
# Autor: Ramon Gomez - Univ. Sevilla, julio 2011
# Variables.
PROG=$(basename $0)
OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
SAMBAUSER="opengnsys" # Usuario por defecto.
TFTPDIR=$OPENGNSYS/tftpboot
CLIENTINITRD=$TFTPDIR/ogclient/oginitrd.img
TMPDIR=/tmp/ogclient$$
# Control básico de errores.
if [ $# != 0 ]; then
echo "$PROG: Error de ejecución" >&2
echo "Formato: $PROG"
exit 1
fi
if [ "$USER" != "root" ]; then
echo "$PROG: Error: solo ejecutable por root" >&2
exit 1
fi
# Crear clave para usuario de acceso a los recursos.
if [ -r $CLIENTINITRD ]; then
stty -echo 2>/dev/null
echo -n "Clave del usuario Samba: "
read SAMBAPASS
# Solo se deben aceptar números y letras para la clave de acceso.
if [ -n "${SAMBAPASS//[a-zA-Z0-9]/}" ]; then
echo
echo "$PROG: Error: la clave solo debe contener caracteres alfanuméricos" >&2
stty echo 2>/dev/null
exit 2
fi
echo
echo -n "Confirmar clave: "
read SAMBAPASS2
echo
stty echo 2>/dev/null
if [ "$SAMBAPASS" != "$SAMBAPASS2" ]; then
echo "$PROG: Error: las claves no coinciden" >&2
exit 2
fi
# Editar la parte de acceso del cliente:
# descomprimir Initrd, sustituir clave y recomprimir Initrd).
mkdir -p $TMPDIR
cd $TMPDIR
gzip -dc $CLIENTINITRD | cpio -im
if [ -f scripts/ogfunctions ]; then
sed -i "s/OPTIONS=\(.*\)user=\w*\(.*\)pass=\w*\(.*\)/OPTIONS=\1user=$SAMBAUSER\2pass=$SAMBAPASS\3/" scripts/ogfunctions
# TEMPORAL: solución ticket 554, actualizar cliente en caché (ogLive r3257).
sed -i "s/busybox reboot/reboot/" scripts/ogfunctions
# FIN CÓDIGO TEMPORAL.
find . | cpio -H newc -oa | gzip -9c > $CLIENTINITRD
else
echo "$PROG: Aviso: no se ha modificado la clave del cliente."
fi
rm -fr $TMPDIR
md5sum $CLIENTINITRD | cut -f1 -d" " > $CLIENTINITRD.sum
cp -a $CLIENTINITRD $TFTPDIR
cp -a $CLIENTINITRD.sum $TFTPDIR
else
SAMBAPASS="og" # Clave por defecto.
echo "$PROG: Aviso: no se ha modificado la clave del cliente."
fi
echo -ne "$SAMBAPASS\n$SAMBAPASS\n" | smbpasswd -a -s $SAMBAUSER
|