source: server/bin/setsmbpass @ 2f9cd767

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since 2f9cd767 was 3638bcd, checked in by ramon <ramongomez@…>, 11 years ago

#616: Volver a tener eco en consola si se corta el script setsmbpass.

git-svn-id: https://opengnsys.es/svn/branches/version1.0@4218 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100755
File size: 2.8 KB
Line 
1#!/bin/bash
2# setsmbpass: cambia la contraseña del usuario del cliente para acceder a los
3#       servicios Samba.
4# Nota: se modifica el Initrd del cliente y se cambia la clave en el servidor.
5# Nota: no se modifica el usuario de acceso (usuario "opengnsys").
6# Uso:  setsmbpass
7# Autor: Ramon Gomez - Univ. Sevilla, julio 2011
8
9
10# Variables.
11PROG=$(basename $0)
12OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
13SAMBAUSER="opengnsys"                           # Usuario por defecto.
14TFTPDIR=$OPENGNSYS/tftpboot
15CLIENTINITRD=$TFTPDIR/ogclient/oginitrd.img
16TMPDIR=/tmp/ogclient$$
17
18# Control básico de errores.
19if [ $# != 0 ]; then
20        echo "$PROG: Error de ejecución" >&2
21        echo "Formato: $PROG"
22        exit 1
23fi
24if [ "$USER" != "root" ]; then
25        echo "$PROG: Error: solo ejecutable por root" >&2
26        exit 1
27fi
28
29# Crear clave para usuario de acceso a los recursos.
30if [ -r $CLIENTINITRD ]; then
31        # Recuperar eco de consola si se corta el proceso.
32        trap "stty echo 2>/dev/null" KILL
33        # Obtener clave del teclado sin eco en pantalla.
34        stty -echo 2>/dev/null
35        echo -n "Clave del usuario Samba: "
36        read SAMBAPASS
37        # Solo se deben aceptar números y letras para la clave de acceso.
38        if [[ "$SAMBAPASS" =~ [^a-zA-Z0-9] ]]; then
39                echo
40                echo "$PROG: Error: la clave solo debe contener caracteres alfanuméricos" >&2
41                stty echo 2>/dev/null
42                exit 2
43        fi
44        echo
45        # Obtener confirmación clave sin eco en pantalla.
46        echo -n "Confirmar clave: "
47        read SAMBAPASS2
48        echo
49        stty echo 2>/dev/null
50        if [ "$SAMBAPASS" != "$SAMBAPASS2" ]; then
51                echo "$PROG: Error: las claves no coinciden" >&2
52                exit 2
53        fi
54        # Editar la parte de acceso del cliente:
55        #    descomprimir Initrd, sustituir clave y recomprimir Initrd).
56        mkdir -p $TMPDIR
57        cd $TMPDIR
58        gzip -dc $CLIENTINITRD | cpio -im
59        if [ -f scripts/ogfunctions ]; then
60                sed -i "s/OPTIONS=\(.*\)user=\w*\(.*\)pass=\w*\(.*\)/OPTIONS=\1user=$SAMBAUSER\2pass=$SAMBAPASS\3/" scripts/ogfunctions
61                # TEMPORAL: solución ticket 554, actualizar cliente en caché (ogLive r3257).
62                sed -i "s/busybox reboot/reboot/" scripts/ogfunctions
63                # FIN CÓDIGO TEMPORAL.
64                # Ticket 565, preparar acceso Rsync cliente.
65                echo "$SAMBAPASS" > scripts/passrsync
66                chown root.root scripts/passrsync
67                chmod 400 scripts/passrsync
68                # Generar Initrd del cliente.
69                find . | cpio -H newc -oa | gzip -9c > $CLIENTINITRD
70                # Ticket 565, preparar acceso Rsync servidor.
71                echo "$SAMBAUSER:$SAMBAPASS" > /etc/rsyncd.secrets
72                chown root.root /etc/rsyncd.secrets
73                chmod 600 /etc/rsyncd.secrets
74        else
75                echo "$PROG: Aviso: no se ha modificado la clave del cliente."
76        fi
77        rm -fr $TMPDIR
78        md5sum $CLIENTINITRD | cut -f1 -d" " > $CLIENTINITRD.sum
79        cp -a $CLIENTINITRD $TFTPDIR
80        cp -a $CLIENTINITRD.sum $TFTPDIR
81else
82        SAMBAPASS="og"                  # Clave por defecto.
83        echo "$PROG: Aviso: no se ha modificado la clave del cliente."
84fi
85echo -ne "$SAMBAPASS\n$SAMBAPASS\n" | smbpasswd -a -s $SAMBAUSER
86
Note: See TracBrowser for help on using the repository browser.