summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorIrina Gómez <irinagomez@us.es>2020-02-04 11:03:01 +0100
committerIrina Gómez <irinagomez@us.es>2020-02-04 11:03:01 +0100
commit4389dcc5c7529a6961bcee7f7b6b9379e7bd7218 (patch)
treea4d68c013148f5261e8fc3d396278590ffca9031 /client
parent2a448046aa504ec12070cec765ae0b419c603396 (diff)
ogGrubSecurity: changes backup of grub.cfg of the partition too.
ogGrub4dosInstallMbr: the configuration directory name is changed to lowercase for the script to work in Linux. GRUBDIR is removed because not use.
Diffstat (limited to 'client')
-rwxr-xr-xclient/engine/Boot.lib63
-rw-r--r--client/shared/etc/lang.ca_ES.conf1
-rw-r--r--client/shared/etc/lang.en_GB.conf1
-rw-r--r--client/shared/etc/lang.es_ES.conf25
4 files changed, 42 insertions, 48 deletions
diff --git a/client/engine/Boot.lib b/client/engine/Boot.lib
index 075fd52c..2ca6577a 100755
--- a/client/engine/Boot.lib
+++ b/client/engine/Boot.lib
@@ -2056,11 +2056,10 @@ echo "${!MSG%%\.}: $@"
#/**
-# ogGrubSecurity int_disk_GRUBCFG int_partition_GRUBCFG [MBR|PART] [user] [password]
+# ogGrubSecurity int_disk_GRUBCFG int_partition_GRUBCFG [user] [password]
#@brief Configura grub.cfg para que sólo permita editar entrada o acceder a línea de comandos al usuario especificado
#@param int_disk_SecondStage
#@param int_part_SecondStage
-#@param type [MBR|PART]
#@param user (default root)
#@param password (default "", no puede entrar)
#@return (nada)
@@ -2073,48 +2072,43 @@ echo "${!MSG%%\.}: $@"
function ogGrubSecurity ()
{
# Variables locales.
-local SECONDSTAGE GRUBGFC USER PASSWD ENCRYPTPASSWD
+local SECONDSTAGE GRUBGFC FILE USER PASSWD ENCRYPTPASSWD
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
- ogHelp "$FUNCNAME" "$FUNCNAME int_ndiskSecondStage int_partitionSecondStage [MBR|PART] [USER] [PASSWORD]" \
- "$FUNCNAME 1 1 MBR " \
- "$FUNCNAME 1 2 PART "
+ ogHelp "$FUNCNAME" "$FUNCNAME int_ndiskSecondStage int_partitionSecondStage [USER] [PASSWORD]" \
+ "$FUNCNAME 1 1 " \
+ "$FUNCNAME 1 2 user clave"
return
fi
-# Error si no se reciben 3 parámetros.
-[ $# -ge 3 ] || ogRaiseError $OG_ERR_FORMAT "$FUNCNAME int_ndiskSecondStage int_partitionSecondStage [MBR|PART] [USER] [PASSWORD]"|| return $?
+# Error si no se reciben 2 parámetros.
+[ $# -ge 2 ] || ogRaiseError $OG_ERR_FORMAT "$FUNCNAME int_ndiskSecondStage int_partitionSecondStage [USER] [PASSWORD]"|| return $?
#localizar disco segunda etapa del grub
SECONDSTAGE=$(ogMount "$1" "$2") || return $?
-case ${3^^} in
- MBR) GRUBGFC="$SECONDSTAGE/boot/grubMBR/boot/grub/grub.cfg"
- ;;
- PART) GRUBGFC="$SECONDSTAGE/boot/grubPARTITION/boot/grub/grub.cfg"
- ;;
- *) ogRaiseError $OG_ERR_FORMAT "${3^^}: $FUNCNAME int_ndiskSecondStage int_partitionSecondStage [MBR|PART] [USER] [PASSWORD]" || return $?
- ;;
-esac
+GRUBGFC=$(ls $SECONDSTAGE/{,boot/}{{grubMBR,grubPARTITION}/boot/,}{grub{,2},{,efi/}EFI/*}/{menu.lst,grub.cfg,grub.cfg.backup.og} 2>/dev/null)
# comprobamos que exista el archivo de configuración.
-[ -f $GRUBGFC ] || ogRaiseError $OG_ERR_NOTFOUND "$GRUBGFC" || return $?
+[ -n "$GRUBGFC" ] || ogRaiseError $OG_ERR_NOTFOUND "grub.cfg" || return $?
-USER=${4:-root}
-PASSWD=${5:-""}
+USER=${3:-root}
+PASSWD=${4:-""}
ENCRYPTPASSWD=$(echo -e "$PASSWD\n$PASSWD"|grub-mkpasswd-pbkdf2|sed -e 1,2d -e s/^.*grub/grub/)
-# Eliminamos configuración anterior
-sed -i -e /superusers/d -e /password_pbkdf2/d $GRUBGFC
+for FILE in $GRUBGFC; do
+ # Eliminamos configuración anterior
+ sed -i -e /superusers/d -e /password_pbkdf2/d $FILE
-# Configuramos grub.cfg para que sólo permita editar o entrar en línea de comandos al usuario especificado
-[ "$PASSWD" == "" ] || sed -i "1i\password_pbkdf2 $USER $ENCRYPTPASSWD" $GRUBGFC
-sed -i "1i\set superusers=\"$USER\"" $GRUBGFC
+ # Configuramos grub.cfg para que sólo permita editar o entrar en línea de comandos al usuario especificado
+ [ "$PASSWD" == "" ] || sed -i "1i\password_pbkdf2 $USER $ENCRYPTPASSWD" $FILE
+ sed -i "1i\set superusers=\"$USER\"" $FILE
-# Permitimos que se seleccionen las entradas
-sed -i /menuentry/s/"{"/"--unrestricted {"/ $GRUBGFC
+ # Permitimos que se seleccionen las entradas
+ sed -i /"menuentry "/s/"{"/"--unrestricted {"/ $FILE
+done
}
@@ -2922,20 +2916,17 @@ ${BINDIR}/bootlace64.com $DEVICE &>/dev/null
#copiar grld a la particion
cp ${BINDIR}/grldr $MOUNTDISK
#Instalar y configurar grub4dos
-if [[ -f $MOUNTDISK/Boot/ ]]; then
- GRUBDIR="$MOUNTDISK/Boot/grub/"
-fi
-if [[ -f $MOUNTDISK/Boot/grub/menu.lst ]]; then
- rm $MOUNTDISK/Boot/grub/menu.lst
- rmdir /$MOUNTDISK/Boot/grub
+if [[ -f $MOUNTDISK/boot/grub/menu.lst ]]; then
+ rm $MOUNTDISK/boot/grub/menu.lst
+ rmdir /$MOUNTDISK/boot/grub
fi
-if [[ ! -f $MOUNTDISK/Boot/grub/menu.lst ]]; then
- mkdir -p /$MOUNTDISK/Boot/grub
- touch /$MOUNTDISK/Boot/grub/menu.lst
+if [[ ! -f $MOUNTDISK/boot/grub/menu.lst ]]; then
+ mkdir -p /$MOUNTDISK/boot/grub
+ touch /$MOUNTDISK/boot/grub/menu.lst
GRUBDISK=$[$1-1]
-cat << EOT >/$MOUNTDISK/Boot/grub/menu.lst
+cat << EOT >/$MOUNTDISK/boot/grub/menu.lst
##NO-TOCAR-ESTA-LINEA MBR
timeout 0
title MBR
diff --git a/client/shared/etc/lang.ca_ES.conf b/client/shared/etc/lang.ca_ES.conf
index bb07fd64..da42c5d5 100644
--- a/client/shared/etc/lang.ca_ES.conf
+++ b/client/shared/etc/lang.ca_ES.conf
@@ -204,6 +204,7 @@ MSG_HELP_ogGrubHidePartitions="Configura el grub del MBR para que oculte las par
MSG_HELP_ogGrubInstallMbr="Instal·la el carregador d'arrencada GRUB al MBR del primer disc dur"
MSG_HELP_ogGrubInstallPartition="Instal·la el carregador d'arrencada BURG al BootSector"
MSG_HELP_ogGrubOgliveDefaultEntry="Configura la entrada de ogLive como la entrada por defecto de GRUB."
+MSG_HELP_ogGrubSecurity="Configura usuario y clave para modificar las entradas del menu del Grub."
MSG_HELP_ogGrubUefiConf="Genera el fichero grub.cfg de la partición EFI."
MSG_HELP_ogHelp="Muestra mensajes de ayudas para las funciones."
MSG_HELP_ogHidePartition="Oculta una partición de Windows."
diff --git a/client/shared/etc/lang.en_GB.conf b/client/shared/etc/lang.en_GB.conf
index f9e5195b..50c07bed 100644
--- a/client/shared/etc/lang.en_GB.conf
+++ b/client/shared/etc/lang.en_GB.conf
@@ -204,6 +204,7 @@ MSG_HELP_ogGrubHidePartitions="Sets MBR grub to hide non starting Windows partit
MSG_HELP_ogGrubInstallMbr="Installs GRUB boot loader on 1st HD MBR"
MSG_HELP_ogGrubInstallPartition="Installs GRUB boot loader on BootSector"
MSG_HELP_ogGrubOgliveDefaultEntry="Sets ogLive entry as default GRUB entry."
+MSG_HELP_ogGrubSecurity="Configures user and password for change the menu entries of grub."
MSG_HELP_ogGrubUefiConf="Generates the grub.cfg file of the EFI partition."
MSG_HELP_ogHelp="Shows functions help messages."
MSG_HELP_ogHidePartition="Hides Windows partition."
diff --git a/client/shared/etc/lang.es_ES.conf b/client/shared/etc/lang.es_ES.conf
index dc04c229..b50911f0 100644
--- a/client/shared/etc/lang.es_ES.conf
+++ b/client/shared/etc/lang.es_ES.conf
@@ -180,18 +180,6 @@ MSG_HELP_ogGetMacAddress="Devuelve la dirección Ethernet del cliente."
MSG_HELP_ogGetMountImageDir="Devuelve el directorio de montaje de una imagen."
MSG_HELP_ogGetMountPoint="Devuelve el directorio donde está montado un sistema de archivos local."
MSG_HELP_ogGetNetInterface=""
-MSG_HELP_ogNvramActiveEntry="Configura a activa entrada del gestor de arranque (NVRAM)."
-MSG_HELP_ogNvramAddEntry="Crea nueva entrada del gestor de arranque (NVRAM)."
-MSG_HELP_ogNvramDeleteEntry="Borra entrada del gestor de arranque (NVRAM)."
-MSG_HELP_ogNvramGetCurrent="Muestra la entrada del gestor de arranque (NVRAM) que ha iniciado el equipo."
-MSG_HELP_ogNvramGetNext="Muestra la entrada del gestor de arranque (NVRAM) que se utilizará en el próximo arranque."
-MSG_HELP_ogNvramGetOrder="Muestra el orden de las entradas del gestor de arranque (NVRAM)."
-MSG_HELP_ogNvramGetTimeout="Muestra el tiempo de espera del gestor de arranque (NVRAM)."
-MSG_HELP_ogNvramInactiveEntry="Configura a inactiva entrada del gestor de arranque (NVRAM)."
-MSG_HELP_ogNvramList="Lista las entradas del gestor de arranque (NVRAN) marcando con un asterisco las activas"
-MSG_HELP_ogNvramSetNext="Configura el próximo arranque con la entrada del gestor de arranque (NVRAM)."
-MSG_HELP_ogNvramSetOrder="Configura el orden de las entradas del gestor de arranque (NVRAM)."
-MSG_HELP_ogNvramSetTimeout="Configura el tiempo de espera del gestor de arranque (NVRAM)."
MSG_HELP_ogGetOsType="Devuelve el tipo de un sistema operativo instalado."
MSG_HELP_ogGetOsUuid="Devuelve el UUID de un sistema operativo"
MSG_HELP_ogGetOsVersion="Devuelve el tipo y la versión de un sistema operativo instalado."
@@ -216,6 +204,7 @@ MSG_HELP_ogGrubHidePartitions="Configura el grub del MBR para que oculte las par
MSG_HELP_ogGrubInstallMbr="Instala el gestor de arranque GRUB en el MBR del primer disco duro"
MSG_HELP_ogGrubInstallPartition="Instala el gestor de arranque GRUB en el BootSector"
MSG_HELP_ogGrubOgliveDefaultEntry="Configura la entrada de ogLive como la entrada por defecto de GRUB."
+MSG_HELP_ogGrubSecurity="Configura usuario y clave para modificar las entradas del menu del Grub."
MSG_HELP_ogGrubUefiConf="Genera el fichero grub.cfg de la partición EFI."
MSG_HELP_ogHelp="Muestra mensajes de ayudas para las funciones."
MSG_HELP_ogHidePartition="Oculta una partición de Windows."
@@ -263,6 +252,18 @@ MSG_HELP_ogMountCdrom="Monta dispositivo óptico por defecto."
MSG_HELP_ogMountFs=$MSG_HELP_ogMount
MSG_HELP_ogMountImage="Monta una imagen sincronizable"
MSG_HELP_ogMount="Monta un sistema de archivos y devuelve el punto de montaje."
+MSG_HELP_ogNvramActiveEntry="Configura a activa entrada del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramAddEntry="Crea nueva entrada del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramDeleteEntry="Borra entrada del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramGetCurrent="Muestra la entrada del gestor de arranque (NVRAM) que ha iniciado el equipo."
+MSG_HELP_ogNvramGetNext="Muestra la entrada del gestor de arranque (NVRAM) que se utilizará en el próximo arranque."
+MSG_HELP_ogNvramGetOrder="Muestra el orden de las entradas del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramGetTimeout="Muestra el tiempo de espera del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramInactiveEntry="Configura a inactiva entrada del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramList="Lista las entradas del gestor de arranque (NVRAN) marcando con un asterisco las activas"
+MSG_HELP_ogNvramSetNext="Configura el próximo arranque con la entrada del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramSetOrder="Configura el orden de las entradas del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramSetTimeout="Configura el tiempo de espera del gestor de arranque (NVRAM)."
MSG_HELP_ogRaiseError="Muestra y registra mensajes de error y devuelve el código correspondiente."
MSG_HELP_ogReduceFs="Reduce el tamaño del sistema de archivos al mínimo ocupado por sus datos."
MSG_HELP_ogReduceImage="Reduce el tamaño de la imagen"