32-bit UIDs for Linux [PATCH]

Christopher Allen Wing (wingc@engin.umich.edu)
Fri, 18 Dec 1998 14:31:25 -0500 (EST)


Hi. A little over a month ago, I wrote a patch against Linux 2.0 to allow
the use of 32-bit UIDs and GIDs. I'm submitting this to the kernel list to
see who else is interested and what thoughts you may have on what I've
done.

I've taken the syscalls in Linux that involve a UID or GID and added
corresponding new syscalls which can handle 32-bit UIDs/GIDs. By
recompiling glibc using the new kernel headers, old binaries linked
against glibc can use high UIDs without a recompile. (because glibc for
the most part uses 32-bit UIDs and GIDs). I've also made a simple
modification to the ext2 filesystem so that it can store high-UIDs as
well. This modification does not break compatibility with existing ext2
filesystems, or the standard ext2 driver.

I've tried to keep everything forwards and backwards compatible; all
existing system calls and kernel interfaces will still work as expected
with 16-bit UIDs, old programs, and old libraries.

I did this work on behalf of the University of Michigan, College of
Engineering computer network (CAEN). U-M is (probably) one of the few
organizations that needs 32-bit UID support, as we have over 100,000 users
in a campus-wide shared Unix environment. (files and home directories are
stored in AFS, /afs/*umich.edu)

This is an experimental work which is not officially endorsed by the
University of Michigan nor intended to be part of the "official" kernel.
We would, however, like to work on getting 32-bit UID support into the
next development kernel (2.3) as soon as it is convenient.

I have patches against the kernel and C library as distributed in Red Hat
Linux 5.1. (kernel 2.0.35 and glibc 2.0.7)
The kernel patches are specific to i386 so far; I will probably do further
work on other platforms and port the changes to the 2.1/2.2 kernel. When I
have time in the near future I will update it to 2.0.36/37.

It hasn't crashed my machine so far and yes, it actually works.

Patches, source and binary RPMs, as well as extensive documentation, are
located at:

http://www-personal.engin.umich.edu/~wingc/uid32

Please write back to me with any thoughts and questions.

Thanks,
Chris Wing

wingc@engin.umich.edu

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/