[TUHS] History of chown semantics
Jeremy C. Reed
reed at reedmedia.net
Fri Jan 10 03:01:01 AEST 2014
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
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:
from 1975 mentions "Only the super-user is allowed to change the owner
of a file, in order to simplify as yet unimplemented accounting
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
(Ed Gould from Berkeley also mentioned it to me.)
mentions "non-class users".
mentions "class master accounts".
to define "class" and winfo database (which is not in 2BSD).
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);
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.
More information about the TUHS