platform specific code to deal with sete{u,g}id. closes #17