I am also interested in this (and had researched it a little for my book
about history of Berkeley Unix).
A few years ago, Thompson had told me that while at Berkeley (on a
sabbatical), he did a modification at Berkeley to put in disk space
quotas to prevent runaways. (This "Berkeley" modification is also
mentioned in the pascal docs, see
http://minnie.tuhs.org/cgi-bin/utree.pl?file=2BSD/doc/pascal/puman3.n )
I thought it was as a side-effect of this that users couldn't chown
files to others (since can't cause quota problems for others). But now I
see that already existed:
http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/man/man8/chown.8
from 1975 mentions "Only the super-user is allowed to change the owner
of a file, in order to simplify as yet unimplemented accounting
procedures."
But it appears that some Berkeley systems did have a concept of some
non-root users chowning files. Apparently there was a Berkeley Fascist
File System where only group masters were able to chown files owned by
members of a group. I also read there was a concept of "class users"
(uid < 0) who could not access others files regardless of open
permissions. For references see
http://www.dnull.com/bsd/oldnews/bsdnew20597.html
https://groups.google.com/forum/#!original/net.unix-wizards/RasSNg_DNHM/2Ty…
https://groups.google.com/forum/#!original/comp.unix.questions/I1nkZGl8Hl0/…
(Ed Gould from Berkeley also mentioned it to me.)
http://minnie.tuhs.org/cgi-bin/utree.pl?file=2BSD/upgrade/src/last.c
mentions "non-class users".
http://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/man6/dates.6 manual
mentions "class master accounts".
http://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/man6/whoison.6 appears
to define "class" and winfo database (which is not in 2BSD).
http://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/s6/chownall.c
has:
if (chgusr && !chggrp && source.uid == 0)
panic("owner of \"%s\" is uid 0 in his group !?!", spth);
else if (!chgusr && chggrp && source.uid != 0)
panic("owner of \"%s\" is not uid 0 of his group !?!", spth);
http://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/man6/chownall.6
also mentions the "user number 0 in his group."
I am not sure what this concept of uid 0 "of a group" means. The way it
is all worded I don't think it is superuser uid 0. I think "group
master" is the same as "class master" and same as "uid 0 of a
group".
Can anyone explain this? (I can't find this concept in 2BSD nor 3BSD.)
Maybe this too much of a tangent, but seems to be about an old example
of users giving away files.