[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}"
|
||||
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
|
||||
UNINSTALL=0
|
||||
if [ "$1" = "-u" ]; then
|
||||
|
@ -140,8 +158,8 @@ install_zettlr_debian() {
|
|||
local arch=$(get_arch)
|
||||
|
||||
echo -e "\n${head_info}: Instalando dependencias necesarias..."
|
||||
sudo apt update
|
||||
sudo apt install -y wget
|
||||
run_cmd apt update
|
||||
run_cmd apt install -y wget
|
||||
|
||||
echo -e "\n${head_info}: Descargando Zettlr versión $ZETTLR_VERSION para $arch..."
|
||||
|
||||
|
@ -155,7 +173,7 @@ install_zettlr_debian() {
|
|||
fi
|
||||
|
||||
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
|
||||
|
||||
# Verificar la instalación
|
||||
|
@ -171,8 +189,8 @@ install_zettlr_debian() {
|
|||
# Función para desinstalar Zettlr en sistemas basados en Debian/Ubuntu
|
||||
uninstall_zettlr_debian() {
|
||||
echo -e "\n${head_info}: Desinstalando Zettlr..."
|
||||
sudo apt remove --purge -y zettlr
|
||||
sudo apt autoremove -y
|
||||
run_cmd apt remove --purge -y zettlr
|
||||
run_cmd apt autoremove -y
|
||||
|
||||
# Eliminar archivos de configuración residuales
|
||||
echo -e "\n${head_info}: Limpiando archivos de configuración..."
|
||||
|
@ -187,8 +205,8 @@ install_zettlr_redhat() {
|
|||
local arch=$(get_arch)
|
||||
|
||||
echo -e "\n${head_info}: Instalando dependencias necesarias..."
|
||||
sudo dnf check-update
|
||||
sudo dnf install -y wget
|
||||
run_cmd dnf check-update
|
||||
run_cmd dnf install -y wget
|
||||
|
||||
echo -e "\n${head_info}: Descargando Zettlr versión $ZETTLR_VERSION para $arch..."
|
||||
|
||||
|
@ -202,7 +220,7 @@ install_zettlr_redhat() {
|
|||
fi
|
||||
|
||||
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
|
||||
|
||||
# Verificar la instalación
|
||||
|
@ -218,7 +236,7 @@ install_zettlr_redhat() {
|
|||
# Función para desinstalar Zettlr en sistemas basados en Red Hat
|
||||
uninstall_zettlr_redhat() {
|
||||
echo -e "\n${head_info}: Desinstalando Zettlr..."
|
||||
sudo dnf remove -y zettlr
|
||||
run_cmd dnf remove -y zettlr
|
||||
|
||||
# Eliminar archivos de configuración residuales
|
||||
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
|
||||
install_zettlr_arch() {
|
||||
echo -e "\n${head_info}: Actualizando repositorios..."
|
||||
sudo pacman -Sy
|
||||
run_cmd pacman -Sy
|
||||
|
||||
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
|
||||
if ! command -v yay &>/dev/null; then
|
||||
|
@ -265,9 +283,9 @@ install_zettlr_arch() {
|
|||
uninstall_zettlr_arch() {
|
||||
echo -e "\n${head_info}: Desinstalando Zettlr..."
|
||||
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
|
||||
sudo pacman -R --noconfirm zettlr
|
||||
run_cmd pacman -R --noconfirm zettlr
|
||||
fi
|
||||
|
||||
# Eliminar archivos de configuración residuales
|
||||
|
@ -475,6 +493,24 @@ uninstall_zettlr() {
|
|||
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
|
||||
clear
|
||||
dialog_error_box "${zl_001}" "${zl_002}"
|
||||
|
|
Loading…
Reference in a new issue