The early Unix history of chown() being restricted to root
Chris Siebenmann with another interesting look at a tiny detail of UNIX history.
A few years ago I wrote aboutthe divide in chown() about who got to give away files, where BSD and V7 were on one side, restricting it to root, while System III and System V were on the other, allowing the owner to give them away too.
[....]The answer is that the restriction was added in V6, wherethe V6 chown(2) manual pagehas the same wording as V7. In Research Unix V5 and earlier, people can chown(2) away their own files; this is documented inthe V4 chown(2) manual pageand is whatthe V5 kernel code for chown() does. This behavior runs all the way back tothe V1 chown() manual page, with an extra restriction that you can't chown() setuid files.
Chris Siebenmann
The deeper levels of this particular rabbit hole need more exploring, though, as eventually Siebenmann hits a roadblock when trying to figure out why, exactly, the restriction was added, and why certain versions chose to not adopt the new restriction. This may be part of the lore of UNIX we won't uncover, until one of the people involved speaks up.