Nadya,

As a result of this investigation, a new note will be added in MS-DTYP Section 
2.5.3.4 to explain how inheritance logic is impacted by protected ACLs. Please 
find below the provisional change that will appear in a future release of the 
document.

Current MS-DTYP:


       2.5.3.4   Algorithm for Creating a Security Descriptor
      http://msdn.microsoft.com/en-us/library/cc230299(v=PROT.10).aspx


1.      Any ACEs with the INHERITED_ACE bit set are NOT copied to the assigned 
security descriptor.

2.      If AutoInheritFlags, as specified in section 
2.5.3.4.1<http://msdn.microsoft.com/en-us/library/cc230315(v=PROT.10)>, is set 
to automatically inherit ACEs from the parent (DACL_AUTO_INHERIT or 
SACL_AUTO_INHERIT), inherited ACEs from the parent are appended after explicit 
ACEs from the CreatorDescriptor. For further details, see the parameter list 
for CreateSecurityDescriptor (section 2.5.3.4.1).

MS-DTYP update similar to the following:



2.5.3.4      Algorithm for Creating a Security Descriptor


1.      Any ACEs with the INHERITED_ACE bit set are NOT copied to the assigned 
security descriptor.

2.      If AutoInheritFlags, as specified in section 
2.5.3.4.1<http://msdn.microsoft.com/en-us/library/cc230315(v=PROT.10)>, is set 
to automatically inherit ACEs from the parent (DACL_AUTO_INHERIT or 
SACL_AUTO_INHERIT), inherited ACEs from the parent are appended after explicit 
ACEs from the CreatorDescriptor. For further details, see the parameter list 
for CreateSecurityDescriptor (section 2.5.3.4.1).

3.      The preceding table describing ACL inheritance logic holds true if the 
ACL is not protected. If the ACL is protected, all the ACEs from the Explicit 
ACL are copied into the assigned security descriptor, resetting any ACEs with 
the INHERITED_ACE bit set as well. The Inheritable ACL is not considered.

Thanks again for helping us improve the MS-DTYP document.

Best regards,
Edgar

From: Edgar Olougouna
Sent: Tuesday, March 08, 2011 4:16 PM
To: '[email protected]'; '[email protected]'
Subject: RE: Question about MS-DTYP 2.5.3.4 Algorithm for Creating a Security 
Descriptor

Nadya,

Thanks for reporting this issue to Microsoft. We confirmed that the behavior 
you observed is expected. A technical document issue was filed to clarify the 
algorithm for creating a security descriptor when the creator security 
descriptor supplies a protected DACL and ACEs with INHERITED_ACE.
The product team is working on the details of updating the relevant algorithm 
either in MS-DTYP or MS-ADTS, whichever is appropriate.
As an informative reference, Chapter 8 of Windows Internals (4th edition, 
2004), which provides an overview of the rules for creating security 
descriptors, can be consulted on this behavior.

Best regards,
Edgar

From: Edgar Olougouna
Sent: Thursday, February 10, 2011 4:25 PM
To: '[email protected]'; [email protected]
Subject: RE: Question about MS-DTYP 2.5.3.4 Algorithm for Creating a Security 
Descriptor

Nadya,

I am researching this and will update you as soon as I have news.

Regards,
Edgar

From: [email protected] [mailto:[email protected]] On Behalf Of Nadezhda Ivanova
Sent: Wednesday, February 09, 2011 8:04 AM
To: Interoperability Documentation Help; [email protected]
Subject: Question about MS-DTYP 2.5.3.4 Algorithm for Creating a Security 
Descriptor

Hi,
I have a question regarding  2.5.3.4 Algorithm for Creating a Security 
Descriptor.

It is said there that any ACEs provided by the user that contain the 
INHERITED_ACE flag are not included in the final SD assigned to the object, and 
in the algorithm they are also disregarded. This is indeed the behavior I 
observed.
I created a group, providing this security descriptor during creation:
"D:(A;ID;WP;;;AU)"
When I read the SD of the object back, it read 
O:DAG:DUD:AIS:AI(OU;CIIOIDSA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CIIOIDSA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)
It had no DACL, as expected.

However, when I performed the same test with a very small change, creating the 
object with this SD - "D:P(A;ID;WP;;;AU)"
The resulted SD is: 
O:DAG:DUD:PAI(A;;WP;;;AU)S:AI(OU;CIIOIDSA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CIIOIDSA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)

So, it turns out that ACEs with INHERITED_ACE flag provided by the user are not 
ignored if we break the inheritance at that object. I haven't found in the docs 
where this is specified, however. Is this a desired behavior?

I am testing against win2003R2

Regards,
Nadya
_______________________________________________
cifs-protocol mailing list
[email protected]
https://lists.samba.org/mailman/listinfo/cifs-protocol

Reply via email to