summaryrefslogtreecommitdiffstats
path: root/server/bin/setsmbpass
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2011-07-26 09:19:57 +0000
committerramon <ramongomez@us.es>2011-07-26 09:19:57 +0000
commitf3b1480e632b38395e407c85c190ec64eec45cc1 (patch)
tree796ee20a3737d4209237a2fd6ba436062dda78a9 /server/bin/setsmbpass
parent653c64e4c5effafa55913bb22ac5c90214d6131a (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-xserver/bin/setsmbpass57
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
+