rm(1) allows root to delete uchg/uappend files. Before unlinking, it checks whether schg|sappend are set to skip the chflags() system call that clears uchg and uappend. It must also check whether uunlink|sunlink are set as they'd also make unlink() fail later. PS: Can anyone explain to me the usefulness of letting root skip uchg/uappend? FreeBSD and DragonFly are the only BSD's that do this. I'm playing with a -F option to unset uchg/uappend/uunlink for any user. The patch is available to anyone on request. Fix: Attached patch successfully built and tested on RELENG_6 & -CURRENT sources. Patch attached with submission follows:
For bugs matching the following criteria: Status: In Progress Changed: (is less than) 2014-06-01 Reset to default assignee and clear in-progress tags. Mail being skipped
Keyword: patch or patch-ready – in lieu of summary line prefix: [patch] * bulk change for the keyword * summary lines may be edited manually (not in bulk). Keyword descriptions and search interface: <https://bugs.freebsd.org/bugzilla/describekeywords.cgi>