标签:python permissions pywin32 ntfs
我在NTFS分区(在Windows 2008上)上有很多文件夹,这些文件夹不会从父项继承权限.
我想重置它,以便它们包括那些父权限(相当于检查“高级安全设置”区域下的“包括此对象的父级的可继承权限”复选框).
由于我们在这里使用Python进行其他一些系统管理任务,如果可能的话我想用Python做(我知道如何在VBScript中做到这一点,但这不是一次性的脚本,而是定期运行,所以应该与我们的代码库的其余部分集成).
我一直在使用优秀的pywin32扩展和http://timgolden.me.uk/python/win32_how_do_i.html和Google的示例开始,但我没有看到任何方式简单地说“从父级继承权限”.
使用AddAccessAllowedAceEx,我甚至可以通过添加INHERITED_ACE标志来伪造某些东西的继承,无论它是否真的来自父级:
dacl.AddAccessAllowedAceEx( \
win32security.ACL_REVISION_DS \
, win32security.OBJECT_INHERIT_ACE | win32security.CONTAINER_INHERIT_ACE | win32security.INHERITED_ACE \
, ntsecuritycon.FILE_GENERIC_READ | ntsecuritycon.FILE_GENERIC_EXECUTE \
, some_sid_here \
)
但是,除非我从根文件夹走完整个路径并一直构建继承,否则我怎么知道要继承哪些东西呢?
解决方法:
需要在根文件夹的ACE上设置OBJECT_INHERIT_ACE和CONTAINER_INHERIT_ACE.您可能还希望清除直接在每个子文件夹和文件上设置的任何权限. (那些将在ACE标志中不包含INHERITED_ACE的那些).
标签:python,permissions,pywin32,ntfs 来源: https://codeday.me/bug/20190709/1414147.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。