while IFS=';' read -r username groups; do
    # Remove whitespace
    username=$(echo "$username" | xargs)
    groups=$(echo "$groups" | xargs)

    # Create user and personal group
    if id "$username" &>/dev/null; then
        echo "User $username already exists." | tee -a "$LOG_FILE"
    else
        useradd -m -s /bin/bash -G "$groups" "$username"
        echo "User $username created." | tee -a "$LOG_FILE"
        
        # Create a random password
        password=$(openssl rand -base64 12)
        echo "$username:$password" | chpasswd
        echo "$username,$password" >> "$PASSWORD_FILE"

        # Set up home directory permissions
        chown "$username:$username" "/home/$username"
        chmod 700 "/home/$username"

        echo "User $username added to groups: $groups" | tee -a "$LOG_FILE"
    fi
done < "$USER_FILE"