I am running a test system with Solaris 10u6 and I am somewhat confused as to 
how ACE inheritance works. I've read through 
http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf but it doesn't seem 
to cover what I am experiencing.

The ZFS file system that I am working on has both aclmode and aclinherit set to 
passthrough, which I thought would result in the ACEs being just that - passed 
through without modification.

In my test scenario, I am creating a folder, removing all ACEs and adding a 
single full access allow ACE with file and directory inheritance for one user:

> mkdir test
> chmod A=user:root:rwxpdDaARWcCos:fd----:allow test

Permission check:
> ls -dV test
d---------+  2 root      root          2 Jan  6 21:17 test
          user:root:rwxpdDaARWcCos:fd----:allow

Ok, that seems to be as I intended. Now I cd into the folder and create a file:

> cd test
> touch file

Permission check:

> ls -V file
-rw-r--r--+  1 root     root           0 Jan  6 21:42 d
         user:root:rwxpdDaARWcCos:------:allow
            owner@:--x-----------:------:deny
            owner@:rw-p---A-W-Co-:------:allow
            group@:-wxp----------:------:deny
            group@:r-------------:------:allow
         everyone@:-wxp---A-W-Co-:------:deny
         everyone@:r-----a-R-c--s:------:allow

Can anyone explain to me what just happened? Why are owner/group/everyone ACEs 
(corresponding to old fashioned POSIX permission bits) created and even more 
strange, why are deny entries created? Is there something mandating the 
creation of these ACEs? I can understand that umask might affect this, but I 
wouldn't have though that it would be causing ACEs to appear out of the blue.

While writing this, I stumbled into this thread: http://tinyurl.com/7ofxfj. Ok, 
so it seems that this is "intended" behavior to comply with POSIX. As the 
author of the thread mentioned, I would like to see an inheritance mode that 
completely ignores POSIX. The thread ends with Mark Shellenbaum commenting that 
he will fasttrack "the behavior that many people want". It is not clear to me 
what exactly he means by this.

Then I found http://docs.sun.com/app/docs/doc/819-5461/ftyxi?l=zh&a=view and 
much to my confusion, the deny ACEs aren't created in example 8-10. How could 
this be? Following some playing around, I came to the conclusion that as long 
as at least one ACE corresponding to owner/group/everyone exists, the extra 
ACEs aren't created:

> mkdir test
> chmod A=user:root:rwxpdDaARWcCos:fd----:allow,everyone@::fd:allow test
> ls -dV test
d---------+  3 root     root          15 Jan  6 22:11 test
         user:root:rwxpdDaARWcCos:fd----:allow
         everyone@:--------------:fd----:allow

> cd test
> touch file
> ls -V file
----------+  1 root     root           0 Jan  6 22:15 file
         user:root:rwxpdDaARWcCos:------:allow
         everyone@:--------------:------:allow

Not bad at all. However, I contend that this shouldn't be necessary - and I 
don't understand why the inclusion of just one "POSIX ACE" (empty to boot) 
makes things work as expected.

/Peter
-- 
This message posted from opensolaris.org
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to