小编典典

在Windows中使用Python设置文件夹权限

python

创建用户AD帐户时,我正在使用Python创建一个新的个人文件夹。正在创建文件夹,但权限不正确。Python可以将用户添加到新创建的文件夹并更改其权限吗?我不确定从哪里开始编码。


阅读 656

收藏
2021-01-20

共1个答案

小编典典

您需要win32security模块,它是pywin32的一部分。这是做您想做的事情的示例

该示例为该文件创建了一个新的DACL并替换了旧的DACL,但是修改现有的DACL很容易。您需要做的就是从安全描述符中获取现有的DACL,而不是创建一个空的DACL,如下所示:

import win32security
import ntsecuritycon as con

FILENAME = "whatever"

userx, domain, type = win32security.LookupAccountName ("", "User X")
usery, domain, type = win32security.LookupAccountName ("", "User Y")

sd = win32security.GetFileSecurity(FILENAME, win32security.DACL_SECURITY_INFORMATION)
dacl = sd.GetSecurityDescriptorDacl()   # instead of dacl = win32security.ACL()

dacl.AddAccessAllowedAce(win32security.ACL_REVISION, con.FILE_GENERIC_READ | con.FILE_GENERIC_WRITE, userx)
dacl.AddAccessAllowedAce(win32security.ACL_REVISION, con.FILE_ALL_ACCESS, usery)

sd.SetSecurityDescriptorDacl(1, dacl, 0)   # may not be necessary
win32security.SetFileSecurity(FILENAME, win32security.DACL_SECURITY_INFORMATION, sd)
2021-01-20