Linux Containers - User Namespace

The core of the user namespace is just separate uid tables so that uid 500 can refer to different users in different virtual servers.

Uids are compared to mediate various operations including file accesses and signaling. They are complicated by the fact that uid 0 is usually allowed to circumvent these checks.

The current set of patches makes some assumptions which have so far been rejected:

It has been deemed preferable by some to take a different approach, slowly augmenting all (uid1==uid2) checks with (uid1==uid2 && uidns1==uidns2) before actually defining uid namespaces.