[FIXED] Solicitud de credenciales para escalamiento de privilegios en zettlr_install.sh
- Añadido código para solicitar contraseña para comando sudo vía dialog - Implementada función run_cmd para ejecutar comandos con privilegios - Reemplazados todos los comandos sudo por run_cmd para usar el escalamiento controlado - Mejorado el manejo de errores para contraseñas incorrectas - Estandarizado con el mismo enfoque utilizado en helix_install.sh 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
95f83d5be3
commit
6c7eda6a8d
1 changed files with 49 additions and 13 deletions
|
@ -68,6 +68,24 @@ fi
|
||||||
title="${head_000} ${head_002}"
|
title="${head_000} ${head_002}"
|
||||||
apps_title="${zl_001}"
|
apps_title="${zl_001}"
|
||||||
|
|
||||||
|
# Función para limpiar la pantalla y salir
|
||||||
|
function finish() {
|
||||||
|
clear
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
# Función para ejecutar comandos con sudo si es necesario
|
||||||
|
run_cmd() {
|
||||||
|
if [ "$EUID" -eq 0 ]; then
|
||||||
|
"$@"
|
||||||
|
else
|
||||||
|
echo "$SUDO_PASS" | sudo -S "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Devuelve el código de estado del último comando ejecutado
|
||||||
|
return $?
|
||||||
|
}
|
||||||
|
|
||||||
# Verificar si se está solicitando la desinstalación
|
# Verificar si se está solicitando la desinstalación
|
||||||
UNINSTALL=0
|
UNINSTALL=0
|
||||||
if [ "$1" = "-u" ]; then
|
if [ "$1" = "-u" ]; then
|
||||||
|
@ -140,8 +158,8 @@ install_zettlr_debian() {
|
||||||
local arch=$(get_arch)
|
local arch=$(get_arch)
|
||||||
|
|
||||||
echo -e "\n${head_info}: Instalando dependencias necesarias..."
|
echo -e "\n${head_info}: Instalando dependencias necesarias..."
|
||||||
sudo apt update
|
run_cmd apt update
|
||||||
sudo apt install -y wget
|
run_cmd apt install -y wget
|
||||||
|
|
||||||
echo -e "\n${head_info}: Descargando Zettlr versión $ZETTLR_VERSION para $arch..."
|
echo -e "\n${head_info}: Descargando Zettlr versión $ZETTLR_VERSION para $arch..."
|
||||||
|
|
||||||
|
@ -155,7 +173,7 @@ install_zettlr_debian() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "\n${head_info}: Instalando Zettlr..."
|
echo -e "\n${head_info}: Instalando Zettlr..."
|
||||||
sudo apt install -y /tmp/zettlr.deb
|
run_cmd apt install -y /tmp/zettlr.deb
|
||||||
rm -f /tmp/zettlr.deb
|
rm -f /tmp/zettlr.deb
|
||||||
|
|
||||||
# Verificar la instalación
|
# Verificar la instalación
|
||||||
|
@ -171,8 +189,8 @@ install_zettlr_debian() {
|
||||||
# Función para desinstalar Zettlr en sistemas basados en Debian/Ubuntu
|
# Función para desinstalar Zettlr en sistemas basados en Debian/Ubuntu
|
||||||
uninstall_zettlr_debian() {
|
uninstall_zettlr_debian() {
|
||||||
echo -e "\n${head_info}: Desinstalando Zettlr..."
|
echo -e "\n${head_info}: Desinstalando Zettlr..."
|
||||||
sudo apt remove --purge -y zettlr
|
run_cmd apt remove --purge -y zettlr
|
||||||
sudo apt autoremove -y
|
run_cmd apt autoremove -y
|
||||||
|
|
||||||
# Eliminar archivos de configuración residuales
|
# Eliminar archivos de configuración residuales
|
||||||
echo -e "\n${head_info}: Limpiando archivos de configuración..."
|
echo -e "\n${head_info}: Limpiando archivos de configuración..."
|
||||||
|
@ -187,8 +205,8 @@ install_zettlr_redhat() {
|
||||||
local arch=$(get_arch)
|
local arch=$(get_arch)
|
||||||
|
|
||||||
echo -e "\n${head_info}: Instalando dependencias necesarias..."
|
echo -e "\n${head_info}: Instalando dependencias necesarias..."
|
||||||
sudo dnf check-update
|
run_cmd dnf check-update
|
||||||
sudo dnf install -y wget
|
run_cmd dnf install -y wget
|
||||||
|
|
||||||
echo -e "\n${head_info}: Descargando Zettlr versión $ZETTLR_VERSION para $arch..."
|
echo -e "\n${head_info}: Descargando Zettlr versión $ZETTLR_VERSION para $arch..."
|
||||||
|
|
||||||
|
@ -202,7 +220,7 @@ install_zettlr_redhat() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "\n${head_info}: Instalando Zettlr..."
|
echo -e "\n${head_info}: Instalando Zettlr..."
|
||||||
sudo dnf install -y /tmp/zettlr.rpm
|
run_cmd dnf install -y /tmp/zettlr.rpm
|
||||||
rm -f /tmp/zettlr.rpm
|
rm -f /tmp/zettlr.rpm
|
||||||
|
|
||||||
# Verificar la instalación
|
# Verificar la instalación
|
||||||
|
@ -218,7 +236,7 @@ install_zettlr_redhat() {
|
||||||
# Función para desinstalar Zettlr en sistemas basados en Red Hat
|
# Función para desinstalar Zettlr en sistemas basados en Red Hat
|
||||||
uninstall_zettlr_redhat() {
|
uninstall_zettlr_redhat() {
|
||||||
echo -e "\n${head_info}: Desinstalando Zettlr..."
|
echo -e "\n${head_info}: Desinstalando Zettlr..."
|
||||||
sudo dnf remove -y zettlr
|
run_cmd dnf remove -y zettlr
|
||||||
|
|
||||||
# Eliminar archivos de configuración residuales
|
# Eliminar archivos de configuración residuales
|
||||||
echo -e "\n${head_info}: Limpiando archivos de configuración..."
|
echo -e "\n${head_info}: Limpiando archivos de configuración..."
|
||||||
|
@ -231,10 +249,10 @@ uninstall_zettlr_redhat() {
|
||||||
# Función para instalar Zettlr en Arch Linux
|
# Función para instalar Zettlr en Arch Linux
|
||||||
install_zettlr_arch() {
|
install_zettlr_arch() {
|
||||||
echo -e "\n${head_info}: Actualizando repositorios..."
|
echo -e "\n${head_info}: Actualizando repositorios..."
|
||||||
sudo pacman -Sy
|
run_cmd pacman -Sy
|
||||||
|
|
||||||
echo -e "\n${head_info}: Instalando dependencias necesarias..."
|
echo -e "\n${head_info}: Instalando dependencias necesarias..."
|
||||||
sudo pacman -S --needed --noconfirm base-devel git
|
run_cmd pacman -S --needed --noconfirm base-devel git
|
||||||
|
|
||||||
# Verificar si yay está instalado
|
# Verificar si yay está instalado
|
||||||
if ! command -v yay &>/dev/null; then
|
if ! command -v yay &>/dev/null; then
|
||||||
|
@ -265,9 +283,9 @@ install_zettlr_arch() {
|
||||||
uninstall_zettlr_arch() {
|
uninstall_zettlr_arch() {
|
||||||
echo -e "\n${head_info}: Desinstalando Zettlr..."
|
echo -e "\n${head_info}: Desinstalando Zettlr..."
|
||||||
if pacman -Qi zettlr-bin &>/dev/null; then
|
if pacman -Qi zettlr-bin &>/dev/null; then
|
||||||
sudo pacman -R --noconfirm zettlr-bin
|
run_cmd pacman -R --noconfirm zettlr-bin
|
||||||
elif pacman -Qi zettlr &>/dev/null; then
|
elif pacman -Qi zettlr &>/dev/null; then
|
||||||
sudo pacman -R --noconfirm zettlr
|
run_cmd pacman -R --noconfirm zettlr
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Eliminar archivos de configuración residuales
|
# Eliminar archivos de configuración residuales
|
||||||
|
@ -475,6 +493,24 @@ uninstall_zettlr() {
|
||||||
return $result
|
return $result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Si no se ejecuta como root, solicitar contraseña para escalamiento vía dialog
|
||||||
|
if [ "$EUID" -ne 0 ]; then
|
||||||
|
dialog_error_box "${head_superuser}" "${hx_011}"
|
||||||
|
dialog_input_pass "${npm_002}" "" ""
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
dialog_error_box "${head_error}" "${npm_003}"
|
||||||
|
finish
|
||||||
|
fi
|
||||||
|
SUDO_PASS="$value"
|
||||||
|
|
||||||
|
# Verificar que la contraseña funcione
|
||||||
|
echo "$SUDO_PASS" | sudo -S true &> /dev/null
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
dialog_error_box "${head_error}" "${npm_003}"
|
||||||
|
finish
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Mensaje de bienvenida
|
# Mensaje de bienvenida
|
||||||
clear
|
clear
|
||||||
dialog_error_box "${zl_001}" "${zl_002}"
|
dialog_error_box "${zl_001}" "${zl_002}"
|
||||||
|
|
Loading…
Reference in a new issue