Once you have 3 or more different implementations, then you can figure out the commonality. Now there are several ways to dedupe the common part.
1. make the functions work on a common data structure. e.g. in define package bitmask functions that take map[string]int as argument.
2. make a type, as you did, but manually forward the appropriate methods by casting. This is nice way to reduce the API, if you don't need a lot.
3. instead of renaming the type, define the uac thing as a struct and embed the bitmask. Of course this makes some creating code more annoying.
With the limited amount of information you showed, I would duplicate the code... it will be easier to manage.
Also for the disabled etc... flags I would create an enum instead of using numbers directly.
+ Egon
...A few weeks ago, I took a class through ArdanLabs (Bill Kennedy was the instructor -- excellent class). While looking around, I suddenly remembered what he said about composition and type promotion. I typed up what I did, using the concept of User and Admin (an Admin is a User...) since that's a little easier to relate to than bitmasks: https://gist.github.com/rsperl/01d7a4da7c01706d50f6