Note that you'll rarely want to give another user FullControl. The
reason is that the user gets more generic access than the file system
access. For example, the user will have the right to change ownership,
which means that user could take ownership of the secure object and then
deny access to anyone else but themselves. Even if you are the creator
of the object in this situation you will no longer have access.
In any case, you should *always* practice the principle of least
rights - only give a user as many rights as they need and no more. If
you follow this principle you will never give out FullControl.
If you use InheritanceFlags.None then the propagation flag is ignored,
so for better readability it is best to use PropagationFlags.None.
NoPropagateInherit has a specific meaning, that is, the ACE will be
inherited by child objects but not by grandchild objects. There's more
Fusion Tutorial: http://www.yqcomputer.com/