[X-Unix] Backdoor method to add users

William H. Magill magill at mcgillsociety.org
Sun Feb 22 06:09:02 PST 2004


On 21 Feb, 2004, at 14:22, Alex wrote:
> On Saturday, Feb 21, 2004, at 13:49 Canada/Eastern, William H. Magill 
> wrote:
>
>> [...] The "UID" [...] is a numeric value whose maximum value is 
>> determined by both the number of bits the hardware architecture 
>> supports (as in 8/16/32/64) and by the coding of the kernel to 
>> support a particular "address" space. [...] if OS X is 64 bit clean, 
>> it supports a 64 bit number, [...]
>
> I was under the impression that, even on some 32-bit and 64-bit 
> systems, the UID is limited to 65535 (biggest 16-bit unsigned 
> integer). I don't recall where I read this -- is it incorrect?

Yes. It is very implementation dependent. That is the limit on 32 bit 
systems.

In Tru64 Unix the value is 4,294,967,294 (32 bits 2 reserved values). 
Note that this "restriction" applies to GIDs as well as UIDs.

However, System V based environments have that 65,535 limit.

"The System V file system (S5FS) does not support the maximum range of 
UIDs and GIDs. Any file system syscall that specifies UIDs and GIDs 
greater than 65,535 returns an EINVAL error. Users assigned a UID or 
GID greater than 65,535 cannot create or own files on a System V file 
system. Consider using the UFS or AdvFS as a solution."

Keep in mind, the System V file system mentioned is essentially the 
original UFS file system -- pre BSD 4.x when it was expanded to allow a 
size greater than 2GB. It is virtually unused today. (When was the last 
time you saw a REAL ATT System V implementation?)

However, the "user name" is STILL limited to 8 characters. [Which is a 
royal pain in the pituti but it is so ingrained in the definition of 
Unix that it cannot be changed, despite 15+ years worth of trying. 
Which drives those of us who come from a VMS background nuts -- we had 
64 character usernames back in 1980!!! ... but then, back in those days 
the attitude was, "nobody would ever need more than 640K of memory," 
despite that fact that VMS was virtual and already supporting much more 
than one meg of (expenisve) physical memory. Unix was developed on PDPs 
where a 512K machine was a HUGE and expensive machine!]

The limits for OS X are defined in
             /usr/include/sys/syslimits.h

#define UID_MAX            2147483647U  /* max value for a uid_t 
(2^31-2) */

#define GID_MAX            2147483647U  /* max value for a gid_t 
(2^31-2) */

[These are from a G4 environment. I haven't looked at the G5 builds.]


T.T.F.N.
William H. Magill
# Beige G3 - Rev A motherboard - 768 Meg
# Flat-panel iMac (2.1) 800MHz - Super Drive - 768 Meg
# PWS433a [Alpha 21164 Rev 7.2 (EV56)- 64 Meg]- Tru64 5.1a
# XP1000 - [Alpha EV6]
magill at mcgillsociety.org
magill at acm.org
magill at mac.com



More information about the X-Unix mailing list