From da99774c44833b9697f2e04f618afa5f0db5a4de Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 24 Dec 2025 02:34:52 +0000 Subject: [PATCH] Fix SUDO_USER unbound variable in export/import - Use ${SUDO_USER:-} to avoid unbound variable error with set -u - Fall back to USER, then /tmp if neither is set - Validate home_dir exists and is writable - Use whoami instead of $USER in scp hint --- install_kiosk_v0.9.9.sh | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/install_kiosk_v0.9.9.sh b/install_kiosk_v0.9.9.sh index 2dfbfb3..e5f6912 100644 --- a/install_kiosk_v0.9.9.sh +++ b/install_kiosk_v0.9.9.sh @@ -10207,21 +10207,33 @@ export_settings() { # Create archive local archive_name="kiosk-backup-$(date +%Y%m%d-%H%M%S).tar.gz" - local home_dir=$(eval echo ~$SUDO_USER) + # Determine home directory - check SUDO_USER first, then USER, then fallback to /tmp + local home_dir="" + if [[ -n "${SUDO_USER:-}" ]]; then + home_dir=$(eval echo "~$SUDO_USER") + elif [[ -n "${USER:-}" ]]; then + home_dir=$(eval echo "~$USER") + else + home_dir="/tmp" + fi + # Validate home_dir exists and is writable + if [[ ! -d "$home_dir" ]] || [[ ! -w "$home_dir" ]]; then + home_dir="/tmp" + fi # Fix permissions for tar sudo chmod -R 644 "$export_dir"/* 2>/dev/null sudo chmod -R 755 "$export_dir" 2>/dev/null find "$export_dir" -type d -exec chmod 755 {} \; 2>/dev/null - tar -czf "$home_dir/$archive_name" -C /tmp "$(basename $export_dir)" + tar -czf "$home_dir/$archive_name" -C /tmp "$(basename "$export_dir")" sudo rm -rf "$export_dir" echo log_success "Settings exported to: $home_dir/$archive_name" echo echo "To transfer this file, use:" - echo " scp $USER@$(hostname -I | awk '{print $1}'):$home_dir/$archive_name ." + echo " scp $(whoami)@$(hostname -I | awk '{print $1}'):$home_dir/$archive_name ." echo pause } @@ -10236,8 +10248,15 @@ import_settings() { echo "Current settings will be OVERWRITTEN." echo - # List available backups - local home_dir=$(eval echo ~$SUDO_USER) + # List available backups - determine home directory + local home_dir="" + if [[ -n "${SUDO_USER:-}" ]]; then + home_dir=$(eval echo "~$SUDO_USER") + elif [[ -n "${USER:-}" ]]; then + home_dir=$(eval echo "~$USER") + else + home_dir="/tmp" + fi local backups=$(ls -1 "$home_dir"/kiosk-backup-*.tar.gz 2>/dev/null | head -10) if [[ -n "$backups" ]]; then