Assuming a unified core data model, you can easily access objects as long as there are relationships.
For the purpose of readability, I am redefining your variable / relationship names:
User <<-----> Group <<-----> Community
Community has many groups has many users. This is simple enough and looks like a viable setup.
To clarify: a user cannot create an object. Only a program can do that.
Group *newGroup = [NSEntityDescription
insertNewinsertNewObjectForEntityForName:@Group"
inManagedObjectContext:self.managedObjectContext];
Community *newCommunity = [NSEntityDescription
insertNewinsertNewObjectForEntityForName:@Community"
inManagedObjectContext:self.managedObjectContext];
userA.group = newGroup;
userB.group = newGroup;
newGroup.community = newCommunity;
Now both userA and userB belong to newGroup and the group is one of the groups in newCommunity. userB is linked to the group, so it is really easy to access the community:
Community *aCommunity = userB.group.community;