NTFS permissions

Tim Howarth tim at worthy.demon.co.uk
Sun Apr 22 07:56:40 EDT 2001


Having serached Google I've found a couple of queries about this but no
easy solutions.

Has anyone wrapped up the various win32 file/security calls to give
simple access to setting NTFS file permissions ?

Whilst trying to work out how to do this I found that there is a Perl
(hiss) module (or whatever they are called) "Win32 Perms" which does
this.

I've started from the sample in Mark Hammond/Andy Robinson's Python
Win32 book in "batchusercreate" where he sets access permissions on a
share but I want to set the permissions on the actual directory.

Cutting it back as far as I can for testing, trying simply to copy a
security descriptor;


import win32security

sd=win32security.GetFileSecurity('g:\\TestACL\\aaa.txt',win32security.
DACL_SECURITY_INFORMATION)

win32security.SetFileSecurity('g:\\TestACL\\bbb.txt',win32security.
DACL_SECURITY_INFORMATION,sd)



results in an error message "the data area passed to a system call is
too small" but the permissions are copied.

Using batchusercreate as a model to create a new DACL and apply that to
a directory results in the usernames being applied but access not set.

Applying to a file does set access permissions but both attempts result
in an error message with a helpful message - "No error message
available".


Anyone know what's wrong with the above, or better still, got a
simplified wrapper around the various API calls, (in fact I don't think
win32 has all that might be needed - e.g. GetSecurityDescriptorDACL to
handle all requirements).



The only reason for wanting to do this is some simple web browser based
user management, without the need to resort to -
os.system("echo y| cacls....).



-- 
___
 |im    ---- ARM Powered ----



More information about the Python-list mailing list