diff options
author | ramon <ramongomez@us.es> | 2011-07-26 09:19:57 +0000 |
---|---|---|
committer | ramon <ramongomez@us.es> | 2011-07-26 09:19:57 +0000 |
commit | f3b1480e632b38395e407c85c190ec64eec45cc1 (patch) | |
tree | 796ee20a3737d4209237a2fd6ba436062dda78a9 /server/bin/setsmbpass | |
parent | 653c64e4c5effafa55913bb22ac5c90214d6131a (diff) |
Versión 1.0.2: mejoras en el instalador y nuevo script para cambio de clave Samba (modifica #428).
git-svn-id: https://opengnsys.es/svn/branches/version1.0@2210 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'server/bin/setsmbpass')
-rwxr-xr-x | server/bin/setsmbpass | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/server/bin/setsmbpass b/server/bin/setsmbpass new file mode 100755 index 00000000..dccc00b2 --- /dev/null +++ b/server/bin/setsmbpass @@ -0,0 +1,57 @@ +#!/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. +CLIENTINITRD=$OPENGNSYS/tftpboot/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 + echo -n "Clave del usuario Samba: " + read SAMBAPASS + echo -n "Confirmar clave: " + read SAMBAPASS2 + stty echo + 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 + find . | cpio -H newc -oa | gzip -9c > $CLIENTINITRD + else + echo "$PROG: Aviso: no se ha modificado la clave del cliente." + fi + rm -fr $TMPDIR +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 + |