source: server/bin/setsmbpass @ 0f16e9f

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 0f16e9f was 337e15f, checked in by ramon <ramongomez@…>, 13 years ago

#514: script setsmbpass reconstruye el checksum del fichero Initrd que se envía al cliente.

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

  • Property mode set to 100755
File size: 2.0 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.
14CLIENTINITRD=$OPENGNSYS/tftpboot/ogclient/oginitrd.img
15TMPDIR=/tmp/ogclient$$
16
17# Control básico de errores.
18if [ $# != 0 ]; then
19        echo "$PROG: Error de ejecución" >&2
20        echo "Formato: $PROG"
21        exit 1
22fi
23if [ "$USER" != "root" ]; then
24        echo "$PROG: Error: solo ejecutable por root" >&2
25        exit 1
26fi
27
28# Crear clave para usuario de acceso a los recursos.
29if [ -r $CLIENTINITRD ]; then
30        stty -echo 2>/dev/null
31        echo -n "Clave del usuario Samba: "
32        read SAMBAPASS
33        # Solo se deben aceptar números y letras para la clave de acceso.
34        if [ -n "${SAMBAPASS//[a-zA-Z0-9]/}" ]; then
35                echo
36                echo "$PROG: Error: la clave solo debe contener caracteres alfanuméricos" >&2
37                stty echo 2>/dev/null
38                exit 2
39        fi
40        echo
41        echo -n "Confirmar clave: "
42        read SAMBAPASS2
43        echo
44        stty echo 2>/dev/null
45        if [ "$SAMBAPASS" != "$SAMBAPASS2" ]; then
46                echo "$PROG: Error: las claves no coinciden" >&2
47                exit 2
48        fi
49        # Editar la parte de acceso del cliente:
50        #    descomprimir Initrd, sustituir clave y recomprimir Initrd).
51        mkdir -p $TMPDIR
52        cd $TMPDIR
53        gzip -dc $CLIENTINITRD | cpio -im
54        if [ -f scripts/ogfunctions ]; then
55                sed -i "s/OPTIONS=\(.*\)user=\w*\(.*\)pass=\w*\(.*\)/OPTIONS=\1user=$SAMBAUSER\2pass=$SAMBAPASS\3/" scripts/ogfunctions
56                find . | cpio -H newc -oa | gzip -9c > $CLIENTINITRD
57        else
58                echo "$PROG: Aviso: no se ha modificado la clave del cliente."
59        fi
60        rm -fr $TMPDIR
61        md5sum $CLIENTINITRD | cut -f1 -d" " > $CLIENTINITRD.sum
62else
63        SAMBAPASS="og"                  # Clave por defecto.
64        echo "$PROG: Aviso: no se ha modificado la clave del cliente."
65fi
66echo -ne "$SAMBAPASS\n$SAMBAPASS\n" | smbpasswd -a -s $SAMBAUSER
67
Note: See TracBrowser for help on using the repository browser.