My idea is, to create an abstract class / interface which can be extended into a user, and into a usergroup. There actually is a good reason for there being this interface connecting the groups with the users as the only differences between a user and a group is that you can login as a user and you can't as a group, and that a group can contain multiple users or groups. Permissions and stuff are handled without taking notice of it being a user or a group. 
How to call something that can be both a user and a usergroup?
object oriented;naming;abstraction
In computer security, users and groups are referred to as Principals.Security principals include the following:Any entity that can be authenticated by the system, such as a user    account, a computer account, or a thread or process that runs in the  security context of a user or computer account.Security groups of these accounts.