Fix update_electron.sh to run without sudo
Changed the script to run as a regular user instead of requiring sudo. The script now: - Checks that it's NOT being run as root (prevents sudo usage) - Uses sudo for individual commands that need elevated privileges - Prompts for sudo password only when needed Changes: - Removed EUID check that required running with sudo - Added check to prevent running as root - Added sudo to backup operations (mkdir, cp, file writes) - All systemctl and npm install commands already use sudo appropriately This matches the behavior of install_kiosk scripts which should be run as a regular user, not with sudo. Usage: ./update_electron.sh (not sudo ./update_electron.sh)
This commit is contained in:
+11
-9
@@ -164,34 +164,35 @@ get_latest_electron_version() {
|
|||||||
|
|
||||||
create_backup() {
|
create_backup() {
|
||||||
local kiosk_dir="$1"
|
local kiosk_dir="$1"
|
||||||
|
local kiosk_owner=$(stat -c '%U' "$kiosk_dir")
|
||||||
local timestamp=$(date +%Y%m%d_%H%M%S)
|
local timestamp=$(date +%Y%m%d_%H%M%S)
|
||||||
BACKUP_DIR="${kiosk_dir}/backups/electron_backup_${timestamp}"
|
BACKUP_DIR="${kiosk_dir}/backups/electron_backup_${timestamp}"
|
||||||
|
|
||||||
log_info "Creating backup..."
|
log_info "Creating backup..."
|
||||||
|
|
||||||
# Create backup directory
|
# Create backup directory
|
||||||
mkdir -p "$BACKUP_DIR"
|
sudo -u "$kiosk_owner" mkdir -p "$BACKUP_DIR"
|
||||||
|
|
||||||
# Backup package.json and package-lock.json
|
# Backup package.json and package-lock.json
|
||||||
if [ -f "$kiosk_dir/package.json" ]; then
|
if [ -f "$kiosk_dir/package.json" ]; then
|
||||||
cp "$kiosk_dir/package.json" "$BACKUP_DIR/"
|
sudo -u "$kiosk_owner" cp "$kiosk_dir/package.json" "$BACKUP_DIR/"
|
||||||
log_success "Backed up package.json"
|
log_success "Backed up package.json"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f "$kiosk_dir/package-lock.json" ]; then
|
if [ -f "$kiosk_dir/package-lock.json" ]; then
|
||||||
cp "$kiosk_dir/package-lock.json" "$BACKUP_DIR/"
|
sudo -u "$kiosk_owner" cp "$kiosk_dir/package-lock.json" "$BACKUP_DIR/"
|
||||||
log_success "Backed up package-lock.json"
|
log_success "Backed up package-lock.json"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create a list of installed packages
|
# Create a list of installed packages
|
||||||
if [ -d "$kiosk_dir/node_modules" ]; then
|
if [ -d "$kiosk_dir/node_modules" ]; then
|
||||||
ls -1 "$kiosk_dir/node_modules" > "$BACKUP_DIR/installed_packages.txt"
|
sudo -u "$kiosk_owner" bash -c "ls -1 '$kiosk_dir/node_modules' > '$BACKUP_DIR/installed_packages.txt'"
|
||||||
log_success "Created list of installed packages"
|
log_success "Created list of installed packages"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Save current Electron version
|
# Save current Electron version
|
||||||
local current_version=$(get_current_electron_version "$kiosk_dir")
|
local current_version=$(get_current_electron_version "$kiosk_dir")
|
||||||
echo "$current_version" > "$BACKUP_DIR/electron_version.txt"
|
echo "$current_version" | sudo -u "$kiosk_owner" tee "$BACKUP_DIR/electron_version.txt" > /dev/null
|
||||||
|
|
||||||
log_success "Backup created at: $BACKUP_DIR"
|
log_success "Backup created at: $BACKUP_DIR"
|
||||||
}
|
}
|
||||||
@@ -284,10 +285,11 @@ update_electron() {
|
|||||||
main() {
|
main() {
|
||||||
print_header "Electron Update Script for UBK"
|
print_header "Electron Update Script for UBK"
|
||||||
|
|
||||||
# Check if running as root or with sudo
|
# Verify not running as root
|
||||||
if [ "$EUID" -ne 0 ]; then
|
if [ "$EUID" -eq 0 ]; then
|
||||||
log_error "This script must be run with sudo"
|
log_error "Do not run this script with sudo"
|
||||||
echo "Usage: sudo $0"
|
echo "Run as regular user: ./$0"
|
||||||
|
echo "The script will prompt for sudo when needed for specific commands"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user