New items created on an ufs normally inherit their group ID from
the parent directory. I have the need for making this configurable.

Since the set-group-ID bit is not used for directories on BSD,
I would like to use it to decide on this: If it is set, the group
ID of the newly created item corresponds to the one of the creating
process. (Yeah, this is exactly the wrong way around compared to
what "the Others" do but I don't want to change the BSD default).

I am currently using this patch. It seems to work great but I would
like to know if I have forgotten something ;-)

--- sys/ufs/ufs/ufs_vnops.c.ORI Fri Jan  3 08:41:47 2003
+++ sys/ufs/ufs/ufs_vnops.c     Mon Feb  9 16:32:46 2004
@@ -1276,6 +1276,11 @@
        if (error)
                goto out;
        ip = VTOI(tvp);
+#ifdef ANDRE
+       if( (dp->i_mode & ISGID) )
+         ip->i_gid = cnp->cn_cred->cr_gid;
+       else
+#endif
        ip->i_gid = dp->i_gid;
 #ifdef SUIDDIR
        {
@@ -2070,6 +2075,11 @@
        if (error)
                return (error);
        ip = VTOI(tvp);
+#ifdef ANDRE
+       if( (pdir->i_mode & ISGID) )
+         ip->i_gid = cnp->cn_cred->cr_gid;
+       else
+#endif
        ip->i_gid = pdir->i_gid;
 #ifdef SUIDDIR
        {


Any hints are welcome.

Thanks,

        -Andre
_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to