Is there a way to share content between users?
You will find that the Organic Groups module is very useful for allowing users to protect content in this way.  You may configure og such that only certain users may create groups, or if you prefer, as in the use case you describe above, many users may be allowed to create new groups for diverse purposes. There are many options on inviting users to groups, allowing users to request memberships to groups, or just letting anyone join groups automatically. It looks to me as if the behaviour you want can be achieved with just the og module, but if that is not the case, there are also many additional contrib modules that can extend or modify og's behavior.