Skip to content
This repository was archived by the owner on Apr 13, 2022. It is now read-only.

Commit 1a6014e

Browse files
committed
Update acl-inheritance.md
1 parent bffd0bb commit 1a6014e

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

acl-inheritance.md

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,40 @@ The need for inherited ACL comes from two main issues:
1515

1616
There are two relevant implementations to consider: `default` and `defaultForNew`. The key differences between those are: (1) whether permissions are defined by the __most significant__ ACL entry or are cumulative, hence (2) the permission check algorithm's direction of the walk through the resource path.
1717

18-
### Strategy 1) `default`
18+
### Strategy 1) `monotonic`
1919

20-
In `default`, ACL permissions are cumulative (inherited from the ancestors) and the permission check algorithm sums permissions from left-to-right. The path is explored from root, `/` to the end.
20+
In `monotonic`, ACL permissions are cumulative (inherited from the ancestors) and the permission check algorithm sums permissions from left-to-right. The path is explored from root, `/` to the end, or inany direction, as the permission is the union of all the permissions from each ACL file. The search can stop when any ACL file is which gives permission.
2121

2222
#### Pro
2323
- Simple hierarchical permission (e.g. everything in `/shared` is shared)
24+
- Can be fast as it only has to find one ACL file to give the permission it needs
25+
- An invariant is that an ACL cnnnot be overruled,
2426

2527
#### Cons
26-
- It is slower than `defaultForNew`, since all the path must be taken into consideration.
27-
- It can't have private subfolders within shared folders. Given that permissions cannot be reverted (with the current WAC specification), a subfolder cannot be private in a shared folder. A possible solution is include Windows' `DENY` or `DENY all` in the WAC specification. These entries would take precedence to the other (_allow_) permissions).
28+
- It is slower than `default`, since all the path must be taken into consideration. @@@ No, not necessaryily,as the search stops the moment it finds success.
29+
- It can't have private subfolders within shared folders. Given that permissions cannot be reverted (with the current WAC specification), a subfolder cannot be private in a shared folder. ((A possible solution is NOT include Windows' `DENY` or `DENY all` in the WAC specification. These entries would take precedence to the other (_allow_) permissions). This system is monotonic.
2830
- User has to be aware of the permissions given to the parent folders
2931

30-
### Strategy 2) `defaultForNew`
32+
### Strategy 2) `default`
3133

32-
In `defaultForNew`, ACL permissions are inherited from the most significant ACL. The permission check algorithm iterates from the end of path to the beginning stopping at the first valid ACL. Note: Different permission check algorithm may be implemented to find the most significant ACL.
34+
In `defaultLocal`, ACL permissions are inherited from the most local ACL file which exists, and no others are searched.. The permission check algorithm iterates from the end of path to the beginning stopping at the first existing ACL. Note: Different permission check algorithm may be implemented to find the most significant ACL.
3335

3436
#### Pro
3537
- It can have private subfolders within shared folders
3638

3739
#### Cons
40+
- Users may lose access to their resource by creating an ACL file that does not contain themselves. (Software stops that happening)
41+
- Changing permissions recursively to a folder will require changing permission on each subfolder's ACL
42+
43+
### Strategy 3) `defaultForNew`
44+
45+
In `defaultForNew`, ACL permissions are inherited from the whole path as in 'momotonic', but done from the end of the path top the root. With this method, however, whenever a file dopes not have a local ACL, one is generated for it, so that in future the search will hit it immediately.
46+
47+
#### Pro
48+
- Fast
49+
50+
#### Cons
51+
- Generates a storage reuirement for all the ACL files, which is a pain, especialy in a fiel space shared with other systems.
3852
- Users may lose access to their resource by creating an ACL file that does not contain themselves.
3953
- Changing permissions recursively to a folder will require changing permission on each subfolder's ACL
4054

0 commit comments

Comments
 (0)