#!/usr/bin/env bash # This script allows the user to reset their CasaOS username and password. # Function to print headers print_header() { echo "========================================" echo " $1" echo "========================================" } # Function to check if a service is active check_service() { if ! systemctl is-active --quiet "$1"; then echo "Error: $1 service is not active. Please ensure CasaOS is properly installed and running." exit 1 fi } # Function to backup the user database backup_user_db() { local backup_file="/var/lib/casaos/db/user.db.backup_$(date +%Y%m%d_%H%M%S)" if sudo cp /var/lib/casaos/db/user.db "$backup_file"; then echo "User database backed up to $backup_file" else echo "Error: Failed to backup user database. Aborting." exit 1 fi } # Check if script is run with sudo if [[ $EUID -ne 0 ]]; then echo "This script must be run with sudo privileges. Aborting." exit 1 fi # Display Welcome print_header "BigBearCasaOS Password Reset V2.0" echo "Here are some links:" echo "https://community.bigbeartechworld.com" echo "https://github.com/BigBearTechWorld" echo "" echo "If you would like to support me, please consider buying me a tea:" echo "https://ko-fi.com/bigbeartechworld" echo "" # Check if the casaos service is active check_service "casaos.service" # Prompt user for confirmation read -p "Do you want to reset your CasaOS username and password? (y/N): " response # Check the user's response if [[ "${response,,}" != "y" ]]; then echo "Operation cancelled by user. Exiting." exit 0 fi # For some systems, if user.db is not found if [[ ! -f /var/lib/casaos/db/user.db ]]; then echo "Warning: user.db not found. Attempting alternative method for some systems." # Check if the file exists if ls /var/lib/casaos/db/user.db &> /dev/null; then echo "user.db found. Proceeding with backup and restart." sudo mv /var/lib/casaos/db/user.db /var/lib/casaos/db/user.db.backup sudo systemctl restart casaos-user-service.service echo "CasaOS user service restarted. Please check if the issue is resolved." else echo "Error: user.db still not found. Please ensure CasaOS is properly installed on your Debian system." exit 1 fi fi # Backup user.db backup_user_db # Remove the original user.db if ! sudo rm /var/lib/casaos/db/user.db; then echo "Error: Failed to remove original user.db. Aborting." exit 1 fi # Restart the casaos user service to reflect the changes if sudo systemctl restart casaos-user-service.service; then echo "CasaOS user service restarted successfully." else echo "Error: Failed to restart CasaOS user service. Please check the system logs." exit 1 fi # Print a success message to the user print_header "Success" echo "Password reset process completed successfully." echo "Please visit the CasaOS UI. You should see the welcome screen to set up a new username and password."