This ugly regression occurred because I overlooked the fact that our chown() invocation would strip off setuid.