我正在寻找更改所有文件的文件权限读取使用Python脚本的目录中的所有用户的写入和执行。 但是,在运行脚本后,当我点击右键查看文件权限时,它只显示我的权限,对于每个人只显示权限的权限。 我在下面的脚本中有什么问题吗?
import os import pdb for dirpath, dirnames, filenames in os.walk('M:\intra\EU'): for filename in filenames: path = os.path.join(dirpath, filename) os.chmod(path, 0o777) # for example
我在这里找到了解决方案:)
使用Python在Windows中设置文件夹权限
import win32security import ntsecuritycon as con import os import pdb userx, domain, type = win32security.LookupAccountName ("", "Everyone") directory='M:\intra\EU' for dirpath, dirnames, filenames in os.walk('M:\intra\EU'): for FILENAME in filenames: sd = win32security.GetFileSecurity(directory+'\\'+FILENAME, win32security.DACL_SECURITY_INFORMATION) dacl = sd.GetSecurityDescriptorDacl() # instead of dacl = win32security.ACL() dacl.AddAccessAllowedAce(win32security.ACL_REVISION, con.FILE_ALL_ACCESS, userx) sd.SetSecurityDescriptorDacl(1, dacl, 0) win32security.SetFileSecurity(directory+'\\'+FILENAME, win32security.DACL_SECURITY_INFORMATION, sd)
根据os.chmod
文档的说明 :
虽然Windows支持chmod(),但只能用它设置文件的只读标志(通过
stat.S_IWRITE
和stat.S_IREAD
常量或相应的整数值)。 所有其他位都被忽略。