The key point I picked up is that it is up to the client to do the 
right thing wrt directories' group and setgid bit. Despite the unusual
ls output on all systems, IRIX was the one that was behaving worse... or
so I thought.
The terms SYSV and BSD semantics were offered. From what I gather and
through testing:
  BSD (tru64): directories inherit their group from the parent 
       regardless of the setgid bit, which is not inherited by 
       children.
  SYSV (irix,linux): directories get the login group of the creator 
       unless the setgid bit is set on the parent, in this case the 
       group is set to that of the parent and the setgid bit is also 
       set.
     
Since it is up to the client to set the group and mode correctly, IRIX
was behaving as it's semantics specify. The prgid mount option mentioned
by Bob Vickers causes IRIX to set the group of directories in the BSD
manner. So I set this option in our autofs maps and that seems to be
a reasonable fix.
Linux on the other hand masks the setgid bit and leaves it up to the
server to set. Since tru64 does not propogate the bit, it is lost. But
I think that since BSD semantics specify that the directory inherit it's
parent's group, the group is set correctly.
What a mess! But I know more than I did when I started, and the prgid 
option has solved the worst of the problems.
Thanks to:
    system administration account
    Bård Tesaker
    Bob Vickers
Steve
On Tue, Feb 05, 2002 at 09:06:35PM -0500, Steve Feehan wrote:
> I have a Tru64 5.1a system that exports an AdvFS via NFS. The filesystem
> is mounted by Linux and IRIX clients.
> 
> First, it seems that Tru64 handles the setgid bit on directories somewhat
> strangely. If I create a directory and set the setgid bit, then do an ls:
> 
> tru64> mkdir foo
> tru64> chgrp admins foo
> tru64> chmod g+s foo
> tru64> ls -ld foo
> drwxrwsr-x   2 sfeehan  admins      8192 Feb  5 20:52 foo
> 
> ok, so far, so good... now I do this:
> 
> tru64> cd foo
> tru64> mkdir bar
> tru64> ls -ld bar
> drwxrwxr-x   2 sfeehan  admins      8192 Feb  5 20:53 bar
> 
> The group of the directory bar/ was set correctly, but where is the 's' 
> in the group execute bit? Now do:
> 
> tru64> cd bar 
> tru64> mkdir baz
> tru64> ls -ld baz
> drwxrwxr-x   2 sfeehan  admins      8192 Feb  5 20:54 baz/
> 
> So the setgid bit is being inherited by new directories, but it doesn't
> show up in the mode. Why?
> 
> Now the really bad part... on Linux it is the same as Tru64, but on Irix
> we get:
> 
> irix> ls -ld foo
> drwxrwsr-x    3 sfeehan  admins       8192 Feb  5 20:53 foo/
> irix> cd foo
> irix> mkdir buz
> irix> ls -ld buz
> drwxrwxr-x    2 sfeehan  admins       8192 Feb  5 20:58 buz
> 
> Looks ok... well, the 's' is missing from the mode, but it's missing on
> tru64 and linux as well...
> 
> irix> cd buz
> irix> mkdir bad
> irix> ls -ld bad
> drwxrwxr-x    2 sfeehan  sfeehan      8192 Feb  5 21:00 bad
> 
> The setgid bit was lost on buz/ so bad/ is created with my login group.
> This is really evil, becuase a) it's unexpected behaviour and b) there
> is no way to tell from the ls output what the modes of a directory are.
> 
> Has anyone else seen this before? Am I missing something really simple?
> 
> Thanks in advance.
> 
> -- 
> Steve Feehan
> Unix Systems Administrator
> Structural Biology and Bioinformatics Group
> University of Vermont
-- 
Steve Feehan
Unix Systems Administrator
Structural Biology and Bioinformatics Group
University of Vermont
Received on Wed Feb 06 2002 - 18:32:03 NZDT