On Thursday, August 1, 2013 5:45:29 PM UTC-5, Josh Cooper wrote:
>
> Hi John,
>
>
> On Thu, Aug 1, 2013 at 6:00 AM, jcbollinger 
> <john.bo...@stjude.org<javascript:>
> > wrote:
>
>>
>>
>> On Wednesday, July 31, 2013 8:22:01 AM UTC-5, 
>> cha...@lyricalsoftware.comwrote:
>>>
>>>
>>> Hopefully my $0.02 can we worth something here ;) I'd argue that it's 
>>> really a separate resource type - since the ACL is related to the user 
>>> space. If you're going to extend it to multiple providers (solaris as per 
>>> your example) it's really similar in idea to RBAC. In fact, if you look at 
>>> Windows ACLs, RBAC, and set/get facl you pretty much have a new type.  Or 
>>> at least that's what I'd hope :)
>>>
>>
>>
>> And of course some Solaris is by no means the only Unix-y OS with ACL 
>> support.  It is available on Linux, too, at least for the most frequently 
>> used filesystems, and I'm sure there are others.  I'm inclined to agree 
>> that a type aimed at broad ACL / RBAC support would be a win.
>>
>
> Yep, I agree. Now, how exactly to map the type across different 
> implementations?
>
> Windows ACLs support inheritance. An ACL can be marked as protected, 
> breaking inheritance, and for directories, everything below it.
>
> ACEs specify a subject (SID) and the rights that are granted/denied. This 
> is a bitfield, though users are more typically used to saying "Full 
> Control" or "Read & Execute".
>
> Windows ACEs can either be allow or deny, the order matters, and if no 
> ACEs match, access is denied.
>
> An ACE for a directory can be marked as object-inherit and/or 
> container-inherit. This doesn't affect the effective permissions on the 
> directory, only files and subdirectories, respectively.
>
> How are these similar & different to Unix-y ACLs?
>
>

Please allow me to refine my terminology from "Unix-y" to "POSIX".  Here's 
a document that does a pretty good job of explaining POSIX ACLs: 
http://users.suse.com/~agruen/acl/linux-acls/online/.

To answer your questions more directly, however:


*ACL Inheritance*:

POSIX defines "default" ACLs for directories, which provide the closest 
analog to Windows ACL inheritance.  A directory's default ACL is assigned 
as the ACL of each file or directory created therein, and also as the 
default ACL of each directory created therein (subject to further 
restriction according to the requested initial mode for the 
file/directory).  POSIX does not differentiate between files and 
directories in this regard, except inasmuch as only directories have 
default ACLs.

ACLs are bound directly to each file and directory; they do not 
automatically change if their parent directory's default ACLs are changed, 
and access control decisions are based only on Files own ACLs (and I 
suspect this is true under the covers for Windows, too).  POSIX differs 
from Windows in not defining features for automatically or implicitly 
updating the ACLs of a directory's contents when that directory's default 
ACL is modified: POSIX default ACLs are relevant only at the creation of 
new files and subdirectories.


*ACL Scope and Structure*:

POSIX ACEs reflect and extend the standard POSIX file permission scheme, 
allowing for read, write, and execute permission to be granted (or not) to 
specified users or groups.  The traditional POSIX 'group' permissions map 
to a mask of the maximum permissions that any ACE other than the owner's or 
'other' can grant.

Access attempts that are not otherwise mapped to an ACE use the 'other' ACE 
that all files have; this is analogous to Windows's "Everyone".  It does 
not necessarily grant any access.

There is no affirmative permission denial as such, only absence of 
permission grant.  It amounts to the same thing for users because if there 
is an ACE matching the UID of the process requesting access then that ACE 
determines access, or lack thereof.  For groups, however, access can be 
granted through any of the process's groups, even if others of its groups 
do not have the requested access.

POSIX ACL order is not significant, but ACE specificity is.  When a 
user-specific ACE is applicable, it determines access, possibly in 
conjunction with the mask ACE.  Otherwise, when one or more group-specific 
ACEs are applicable, they jointly determine access, together with any mask 
ACE.  Only if no other ACE applies is the 'other' ACE relevant.


John

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to