People who are perfectly good, or perfectly evil, do not exist in this world. Characters who are such, are very hard to identify with, which in my opinion makes them bad characters.
For a character to be an interesting person, they should have their own desires (not be perfectly altruistic) and those desires should conflict with other characters, who are not evil straw-men. I don’t mean that the reader shouldn’t cheer for the protagonist, they should definitely do that, but we should understand the perspective of the people who disagree with her, and maybe even agree with them a bit.
Everyone is the hero of their own story, and the villain of someone else’s. If everyone unconditionally loves (or hates) your character, they become boring and eventually loathsome.