On Wed, Apr 07, 2010 at 11:17:52AM -0400, Glenn Fowler wrote: > can someone who can reproduce the failure do > { > df /tmp > rm -rf /tmp/command > umask > truss /bin/ksh93 -c 'mkdir -m 1777 /tmp/command' > } > test.out 2>&1 > and send me test.out
With 93t+ I see the sticky NOT set. The truss shows: umask(0) = 022 mkdir("/tmp/command", 01777) = 0 umask(022) = 0 Trussing the real /bin/mkdir I see: umask(0) = 022 umask(022) = 0 mkdir("/tmp/cmd2", 01777) = 0 lxstat(2, "/tmp/cmd2", 0x080473E0) = 0 chmod("/tmp/cmd2", 01777) = 0 It seems that the sticky bit cannot be set by the mkdir(2) system call?! I see no indication in mkdir(2), chmod(2), umask(2), or intro(2) that mkdir(2) cannot create directories with S_ISVTX or, for that matter, S_ISGID (the ksh93 builtin also can't create directories with S_ISGID set). I think this must either be a bug in Solaris or, given the report from a MacOS X user, perhaps a POSIX bug. The inability to atomically create a directory with S_ISVTX and/or S_ISGID set seems at least annoying. Nico -- _______________________________________________ ksh93-integration-discuss mailing list ksh93-integration-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/ksh93-integration-discuss