diff options
author | Ramón M. Gómez <ramongomez@us.es> | 2020-09-03 12:29:04 +0200 |
---|---|---|
committer | Ramón M. Gómez <ramongomez@us.es> | 2020-09-03 12:29:04 +0200 |
commit | 0e3e1674ae6d35ab6af29af96a6f24bfb9179078 (patch) | |
tree | ff80289ce51928db489abf74fef3251fb10a8230 /server/bin | |
parent | 64e2155d0620c0fbbaa2827fe2edbf1c6cea135c (diff) |
#997: Support for Initrd compressed in several formats.
Adding compatibility with Ubuntu 20.04 Initrd, which is compressed in LZ4 format.
Diffstat (limited to 'server/bin')
-rwxr-xr-x | server/bin/installmodule | 3 | ||||
-rwxr-xr-x | server/bin/oglivecli | 10 | ||||
-rwxr-xr-x | server/bin/setsmbpass | 8 | ||||
-rwxr-xr-x | server/bin/setsslkey | 6 |
4 files changed, 17 insertions, 10 deletions
diff --git a/server/bin/installmodule b/server/bin/installmodule index 4625bd04..b0a4ac5b 100755 --- a/server/bin/installmodule +++ b/server/bin/installmodule @@ -73,7 +73,8 @@ source module.conf || exit # Descomprimir Initrd. mkdir -p $tmpinit cd $tmpinit -gzip -dc $INITRD | cpio -im 2>/dev/null +COMPRESS=$(file -b "$CLIENTINITRD" | awk '{print tolower($1);}') +$COMPRESS -dc $INITRD | cpio -im 2>/dev/null # Versión del Kernel del Initrd. KERNEL=$(ls -d lib/modules/[0-9]* | head -1) diff --git a/server/bin/oglivecli b/server/bin/oglivecli index a6e3148a..65dd2e0f 100755 --- a/server/bin/oglivecli +++ b/server/bin/oglivecli @@ -260,7 +260,7 @@ function download() { # Install an ogLive client from a previously downloaded ISO image. function install() { local OGLIVEFILE OGLIVEDIST OGLIVEREV OGLIVEKRNL OGLIVEDIR OGINITRD OGSQFS OGCLIENT=ogclient - local SAMBAPASS TMPDIR RSYNCSERV RSYNCCLNT + local COMPRESS SAMBAPASS TMPDIR RSYNCSERV RSYNCCLNT [ $# -ne 1 ] && raiseError usage OGLIVEFILE=$(realpath $DOWNLOADDIR/$1) # Only 1 file in pathname expansion. @@ -289,10 +289,10 @@ function install() { OGINITRD=$OGLIVEDIR/oginitrd.img [ ! -r $OGINITRD ] && OGINITRD=$TFTPDIR/$DEFOGLIVE/oginitrd.img if [ -r $OGINITRD ]; then - SAMBAPASS=$(gzip -dc $OGINITRD | \ - cpio -i --to-stdout scripts/ogfunctions 2>&1 | \ - grep "^[ ].*OPTIONS=" | \ - sed 's/\(.*\)pass=\(\w*\)\(.*\)/\2/') + COMPRESS=$(file -b "$OGINITRD " | awk '{print tolower($1);}') + SAMBAPASS=$($COMPRESS -dc $OGINITRD | \ + cpio -i --to-stdout scripts/ogfunctions 2>&1 | \ + sed -n '/^[ ].*OPTIONS=/s/.*pass=\(\w*\).*/\1/p') fi # Make ogLive backup. rm -fr ${OGLIVEDIR}.old diff --git a/server/bin/setsmbpass b/server/bin/setsmbpass index f681196b..4920d399 100755 --- a/server/bin/setsmbpass +++ b/server/bin/setsmbpass @@ -13,6 +13,9 @@ #@version 1.1.0 - Soporte para varios clientes ogLive. #@author Ramón M. Gómez - ETSII Univ. Sevilla #@date 2017-06-20 +#@version 1.2.0 - Soporte para varios compresores de Initrd. +#@author Ramón M. Gómez - ETSII Univ. Sevilla +#@date 2020-09-02 #*/ ## @@ -76,7 +79,8 @@ for OGLIVE in $LIST; do echo "Configurando cliente \"$OGLIVE\" ..." mkdir -p $TMPDIR cd $TMPDIR || ogRaiseError access "Directorio temporal" - gzip -dc "$CLIENTINITRD" | cpio -im + COMPRESS=$(file -b "$CLIENTINITRD" | awk '{print tolower($1);}') + $COMPRESS -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). @@ -86,7 +90,7 @@ for OGLIVE in $LIST; do echo "$SAMBAPASS" > scripts/passrsync chown root.root scripts/passrsync chmod 400 scripts/passrsync - # Generar Initrd del cliente. + # Generar Initrd del cliente (siempre comprimido con gzip). find . | cpio -H newc -oa | gzip -9c > "$CLIENTINITRD" else echo "$PROG: Aviso: no se ha modificado la clave del cliente \"$OGLIVE\"." diff --git a/server/bin/setsslkey b/server/bin/setsslkey index 9652f006..2ea46a6e 100755 --- a/server/bin/setsslkey +++ b/server/bin/setsslkey @@ -58,7 +58,8 @@ if [ "$NEWKEY" != "NEW" ]; then if [ -r "$CLIENTINITRD" ]; then mkdir -p $TMPDIR cd $TMPDIR || exit 3 - gzip -dc "$CLIENTINITRD" | cpio -im + COMPRESS=$(file -b "$CLIENTINITRD" | awk '{print tolower($1);}') + $COMPRESS -dc "$CLIENTINITRD" | cpio -im if [ -r scripts/ssl/id_rsa ]; then PRIVKEY=$(cat scripts/ssl/id_rsa |grep -v '\-\-\-') PUBLICKEY=$(cat scripts/ssl/id_rsa.pub) @@ -94,7 +95,8 @@ for OGLIVE in $LIST; do echo "Configurando cliente \"$OGLIVE\" ..." mkdir -p $TMPDIR cd $TMPDIR || exit 3 - gzip -dc "$CLIENTINITRD" | cpio -im + COMPRESS=$(file -b "$CLIENTINITRD" | awk '{print tolower($1);}') + $COMPRESS -dc "$CLIENTINITRD" | cpio -im # Genero archivos de claves [ -d $TMPDIR/scripts/ssl ] || mkdir -p $TMPDIR/scripts/ssl |