in reply to Re^4: Modifying NTFS File Permissions
in thread Modifying NTFS File Permissions

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.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

Replies are listed 'Best First'.
Re^6: Modifying NTFS File Permissions
by Anonymous Monk on May 23, 2009 at 02:38 UTC
    I really do appreciate your assistance but in all honesty I am not getting any useful information. I need to do this in Perl. You stated "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." While that may be true, it doesn't help at all. The Perl script has sufficient permission but as stated earlier, IIS6 won't let this happen. So, back to the exact same question I started with. How do I accomplish this in Perl?
      but as stated earlier, IIS6 won't let this happen.

      How can IIS stop it? If your Perl script has the authority to do it; then calling system to use a utility to do will also work unless there is some mysterious mechanism at work.

      Beside which, I already told you how to do it. You have to bit-wise OR the new permissions with the existing ones, before (re-)setting them.


      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.