On most POSIX systems including Linux file ownership can only be changed globally, i.e. for all users through the chown*() syscall family. In this talk we will introduce idmapped mounts. Idmapped mounts allow to change the ownership of files under the mounts they appear in.
File ownership is a global property on most systems that have a uid and gid concept. On POSIXy systems the chown*() syscall family allows to change the owner of a file or directory. If the ownership of a file is changed it will be changed for each user on the systems equally. But various use-cases exist where this can be problematic: - Portable home directories that are used on different computers where the user is assigned a different uid and gid. - Filesystems that allow to merge or unionize multiple filesystems are often shared between different users. - On Linux user namespaces used in containers also affect file ownership. - Chowning files on really large filesystems is costly. Idmapped mounts solve these problems and others by allow bind-mounts to specify idmappings allowing to change file ownership on a per-mount point basis. In this talk we will take a close look technical at the idmapped mount patchset, the use-cases it is intended to solve, and we will demo it's capabilities.
Speakers: Christian Brauner