Bert Fischer <[EMAIL PROTECTED]> writes: > After some iterations I had to run `touch /tmp/.aaa; chmod og+w > /tmp/.aaa' as root and then run the test as a non-priveleged user to > reproduce the result.
Thanks for checking into this. With your help I managed to understand the bug; I now know what you mean by a "non-POSIX system call". Apparently Solaris follows the SVR4 tradition and lets you remove any writable file in a sticky directory, whereas Linux, BSD, etc. follow the BSD tradition, which does not let you remove a file in a sticky directory merely because the file is writable. POSIX 1003.1-2004 specifies the BSD behavior but Solaris doesn't claim conformance to this recent edition of POSIX. Perhaps the bug will be fixed in Solaris 10? I think it's supposed to claim conformance to POSIX 1003.1-2001, and I think that's the same as POSIX-2004 here. Anyway, I installed the following coreutils patch. Can you please try it on your host? I was still unable to reproduce the problem on my Solaris host, perhaps due to my own userid pattern. Thanks. 2004-09-19 Paul Eggert <[EMAIL PROTECTED]> * tests/rm/fail-eperm: Don't try to remove writable files in a sticky /tmp directory, as SVR4-like systems (e.g., Solaris 9) let you remove such files. Problem reported by Bert Fischer in: http://lists.gnu.org/archive/html/bug-coreutils/2004-09/msg00074.html Index: tests/rm/fail-eperm =================================================================== RCS file: /home/eggert/coreutils/cu/tests/rm/fail-eperm,v retrieving revision 1.14 retrieving revision 1.15 diff -p -u -r1.14 -r1.15 --- tests/rm/fail-eperm 19 Jul 2003 12:00:38 -0000 1.14 +++ tests/rm/fail-eperm 19 Sep 2004 07:11:16 -0000 1.15 @@ -60,7 +60,9 @@ foreach my $dir (@dir_list) # Skip files owned by self, symlinks, and directories. # It's not technically necessary to skip symlinks, but it's simpler. - -l $target_file || -o _ || -d _ + # SVR4-like systems (e.g., Solaris 9) let you unlink files that + # you can write, so skip writable files too. + -l $target_file || -o _ || -d _ || -w _ and next; $found_file = 1; _______________________________________________ Bug-coreutils mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/bug-coreutils