setuid cleared on write
utzoo!decvax!ucbvax!unix-wizards
utzoo!decvax!ucbvax!unix-wizards
Thu Sep 10 03:12:01 AEST 1981
>From pur-ee!bruner at Berkeley Thu Sep 10 03:05:54 1981
From decvax!ucbvax!unix-wizards Tue Sep 8 02:46:22 1981
/usr/spool/mail : fa.unix-wizards
>From eps at UCLA-Security Mon Sep 7 23:48:16 1981
f = sfl7(); /* set reasonably high flame level */
/*
Resetting suid bits when a file is modified is a loss. File
protection is (should be) sufficient to prevent unauthorized
users from rewriting set-uid files. "Privileged" users should
have a umask of at least 2 to impede carelessness. If your
kernel allows ordinary users to chown, then suid should be reset
if the new uid!=euid, and likewise for sgid. Chown should mask
off sgid if the file's gid!=egid also. "The superuser is
considered sufficiently responsible" so those restrictions
shouldn't apply for uid 0--but mail is presumably running as
root. From various bad experiences with IN[ter]active System's
VAX/WB I firmly believe that "No mail program should EVER change
the owner or protection of an EXISTING file." Perhaps it might
not be unreasonable for mail to stat(2) a recipient's mailbox and
mail off an "I suspect a muncher" note to someone appropriate if
it looks suspicious. By the way, I've never seen a Unix site
where /usr wasn't a separate filesystem from the root, if that's
any consolation (of course there are suid programs in /usr/bin).
If your mail program keeps mailboxes in /usr/spool/mail (rather
than appending to a file in users' HOME directories), then I
don't see any reason why mail has to be setuid. Make it
set-gid "mail" and each user can still own his/her own
mailbox yet the directory and the mailboxes need not be
other-writable.
--Eric
*/
sflx(f);
I would propose that the setuid bit be cleared if the file is written
by someone other than its owner, and similarly that the setgid bit
be cleared if the group-id of the writer doesn't match the group id
of the file. This way, a user could write upon his own files and
not have to remember to "chmod" them back after each write. Also,
members of a group (who, in general, cannot "chmod" the file) can
change its contents without clearing the setgid bit. Users other
than the owner (for setuid) or users outside of the group (for setgid)
could not take advantage of a file accidentally left writable.
--John Bruner
(ucbvax!pur-ee!bruner)
More information about the Comp.unix.wizards
mailing list