The answer is because as stated in the original post, the commented line that sets the permissions works.
If your perl script has sufficient authority to modify the permissions, then it has sufficient authority to use (I|X)cacls.exe to modify those permissions.
I just can't figure out how to modify the existing permissions.
Which is why I suggested you use (I|X)cacls to do the job. Because they are easier to figure out. And they are less likely to screw up existing permissions as you add new ones.
I'm beginning to think it just isn't possible and that is certainly disappointing.
It is possible. It's just quite hard to get right. In general, when modifying bitmapped values, the process is:
$toAdd = (BIT1 | BIT4 | BIT7);
$old = getOld( X );
$new = $old | $toAdd;
put( X, $new );
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
|