Python 如何为特定用户获取目录的r/w权限?
我的python脚本为每个用户创建一个文件夹。我想在只有一个特定用户可以访问一个特定目录而不能访问其他文件夹的情况下设置权限/授予权限。例如,python脚本创建folder1,folder2,…我希望folder1只能由用户1读取,folder2只能由用户2读取…等等。正在Windows Server 2008上工作。 谢谢。Python 如何为特定用户获取目录的r/w权限?,python,windows,Python,Windows,我的python脚本为每个用户创建一个文件夹。我想在只有一个特定用户可以访问一个特定目录而不能访问其他文件夹的情况下设置权限/授予权限。例如,python脚本创建folder1,folder2,…我希望folder1只能由用户1读取,folder2只能由用户2读取…等等。正在Windows Server 2008上工作。 谢谢。os.chown(path,uid,gid)更改路径所有者,然后使用模式700(只有您可以读取、写入或执行路径)更改os.chmod(path,mode)。我认为那应该行
os.chown(path,uid,gid)
更改路径所有者,然后使用模式700(只有您可以读取、写入或执行路径)更改os.chmod(path,mode)
。我认为那应该行得通
---编辑---
显然
chown
dosent适用于windows。看起来您需要win32security
模块,它是pywin32的一部分。这是一个演示如何使用它更改权限的答案。Win32安全API不适合胆小鬼。最简单的解决方案是使用外部Microsoft程序,如从Python调用的cacls
或icacls
,使用子流程
或系统
<代码>cacls相当混乱:
cmd = r"echo y|cacls gash.txt /E /G BUILTIN\\Users:R"
cacls
记录在联机帮助(Windows XP)和中。它可能会输出一个提示(取决于操作)“确定吗(Y/N)”,这就是我们在示例中使用echo Y|
的原因(请参阅)。或者使用Windows资源工具包中的xcacls.exe
——此版本不提示
在Windows Vista和Windows 7上,
cacls
程序仍然可以工作,但不推荐使用功能更强大的icacls
程序,谢天谢地,该程序没有提示。抱歉,我没有Windows 8。请先尝试os.chown,然后再尝试os。chmod@BurhanKhalid-文档中说明了关于chomd的内容:“可用性:Unix,Windows。”-请参阅@BurhanKhalid-等等,chown显然只适用于Unix。。谢谢这个问题被贴上了标签。