From 4389dcc5c7529a6961bcee7f7b6b9379e7bd7218 Mon Sep 17 00:00:00 2001 From: Irina Gómez Date: Tue, 4 Feb 2020 11:03:01 +0100 Subject: 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. --- client/engine/Boot.lib | 63 +++++++++++++++++---------------------- client/shared/etc/lang.ca_ES.conf | 1 + client/shared/etc/lang.en_GB.conf | 1 + client/shared/etc/lang.es_ES.conf | 25 ++++++++-------- 4 files changed, 42 insertions(+), 48 deletions(-) (limited to 'client') 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" -- cgit v1.2.3-18-g5258