I don't understand the differences between flags and permissions
Permission means permission to change flags.
Flag means the ability to do certain things.
For example, if the override_transfer flag is set, you can grab the asset from the people who are holding it. If the override_transfer permission is set, you can change the value of the override_transfer flag.