We have an open bug which results in new directories created over NFSv4 from a linux client having the wrong group ownership. While waiting for a patch to resolve the issue, we have a script running hourly on the server which finds directories owned by the wrong group and fixes them.
One of our users complained that the ACL's on some of their content were broken, and upon investigation we determined /usr/bin/chgrp is breaking them: drwxrws--x+ 2 root iit_webdev 2 Feb 10 16:29 testdir owner@:rwxpdDaARWcC--:-di---:allow owner@:rwxpdDaARWcC--:------:allow group@:rwxpdDaARWc---:-di---:allow group@:rwxpdDaARWc---:------:allow group:iit_webdev-admin:rwxpdDaARWcC--:-di---:allow group:iit_webdev-admin:rwxpdDaARWcC--:------:allow everyone@:--x---a-R-c---:-di---:allow everyone@:--x---a-R-c---:------:allow owner@:rwxpdDaARWcC--:f-i---:allow group@:rwxpdDaARWc---:f-i---:allow group:iit_webdev-admin:rwxpdDaARWcC--:f-i---:allow everyone@:--------------:f-i---:allow # chgrp iit testdir drwxrws--x+ 2 root iit 2 Feb 10 16:29 testdir owner@:rwxpdDaARWcC--:-di---:allow owner@:----dDaARWcC--:------:allow group@:rwxpdDaARWc---:-di---:allow group@:----dDaARWc---:------:allow group:iit_webdev-admin:rwxpdDaARWcC--:-di---:allow group:iit_webdev-admin:rwxpdDaARWcC--:------:allow everyone@:--x---a-R-c---:-di---:allow everyone@:------a-R-c---:------:allow owner@:rwxpdDaARWcC--:f-i---:allow group@:rwxpdDaARWc---:f-i---:allow group:iit_webdev-admin:rwxpdDaARWcC--:f-i---:allow everyone@:--------------:f-i---:allow owner@:--------------:------:deny owner@:rwxp---A-W-Co-:------:allow group@:--------------:------:deny group@:rwxp----------:------:allow everyone@:rw-p---A-W-Co-:------:deny everyone@:--x---a-R-c--s:------:allow Sure enough, per truss: chmod("testdir", 02771) = 0 Looking at the chgrp man page: Unless chgrp is invoked by a process with appropriate privileges, the set-user-ID and set-group-ID bits of a regu- lar file will be cleared upon successful completion; the set-user-ID and set-group-ID bits of other file types may be cleared. Well, I'm running the chgrp as *root*, and it's not *clearing* the existing setgid bit on the directory, it's *adding* it when it's already there. Why? It seems completely unnecessary and **breaks the ACL**. This is yet another instance of the general problem I posted about yesterday: http://www.mail-archive.com/zfs-discuss@opensolaris.org/msg34588.html to which I have so far received no comments (Dozens of people can spend over a week arguing about the cost effectiveness of Sun branded storage ;), and not a single person is interested in an endemic ACL problem?). I was completely unsuccessful at getting samba under Solaris 10 to stop gratuitously chmod()'ing stuff, so I ended up preloading a shared library overriding the chmod call with a noop. Which works perfectly, and results in exactly the behavior I need. But it's not really feasible to run around and tweak every little binary around (preload a shared library to stop chgrp from breaking ACL's too?), which is why I think it would be an excellent feature to let the underlying operating system deal with it -- hence aclmode ignore/deny... -- Paul B. Henson | (909) 979-6361 | http://www.csupomona.edu/~henson/ Operating Systems and Network Analyst | hen...@csupomona.edu California State Polytechnic University | Pomona CA 91768 _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss