Issue was reported by @Talkless https://github.com/bitcoin-core/gui/pull/379#issuecomment-888537173

Happens due to this line in `ReadSettings`:

https://github.com/bitcoin/bitcoin/blob/4b1fb50def0dea0cd320bc43c12d9a12edde0390/src/util/settings.cpp#L65

which treats a nonexisting file the same as an inaccessible file. It should be changed to treat any settings file that exists and is unreadable as an error.
const bool add_zombie_config_values =
            (source == Source::CONFIG_FILE_NETWORK_SECTION || source == Source::CONFIG_FILE_DEFAULT_SECTION) &&
            !prev_negated_empty;
        
        if (ignore_default_section_config && source == Source::CONFIG_FILE_DEFAULT_SECTION) return;
        
        
        if (!done || add_zombie_config_values) {
            for (const auto& value : span) {
                if (value.isArray()) {
                    result.insert(result.end(), value.getValues().begin(), value.getValues().end());
                } else {
                    result.push_back(value);
                }
            }
        }
        
        
        done |= span.negated() > 0 || source == Source::FORCED;
        
        prev_negated_empty |= span.last_negated() && result.empty();
    });
    return result;
}
bool OnlyHasDefaultSectionSetting(const Settings& settings, const std::string& section, const std::string& name)