【发布时间】:2010-10-01 19:14:39
【问题描述】:
我有一个在用户指定目录中创建文件的代码。用户可以指向一个他不能在其中创建文件的目录,但他可以重命名它。
我为测试目的创建了目录,我们称之为C:\foo。
我对@987654322@ 有以下权限:
- 遍历目录/执行文件
- 删除子文件夹和文件
- 正在删除
- 读取权限
- 更改权限
- 取得所有权
我对@987654323@没有以下任何权限:
- 完全控制
- 文件创建
- 文件夹创建
到目前为止,我已经尝试了以下方法:
os.access('C:\foo', os.W_OK) == True
st = os.stat('C:\foo')
模式 = st[stat.ST_MODE]
模式 & stat.S_IWRITE == 真
我相信这是因为我可以重命名文件夹,所以它对我来说是可变的。但它的内容 - 不是。
有谁知道如果当前用户有权在该目录中创建文件,我该如何编写代码来检查给定目录?
简而言之 - 我想检查当前用户是否具有给定文件夹名称的文件创建和文件夹创建权限。
编辑:对此类代码的需求源于“Certified for Windows Vista”程序的第 3 号测试用例,其中指出:
- 应用程序不得允许最低权限用户将任何文件保存到 Windows 系统目录以通过此测试用例。
这是否应该理解为“应用程序可能会尝试将文件保存在 Windows 系统目录中,但不应该在失败时崩溃?”或者更确切地说“应用程序必须在尝试保存文件之前执行安全检查?”
我是否应该仅仅因为 Windows Vista 本身不允许最小特权用户将任何文件保存在 %WINDIR% 中而停止打扰?
【问题讨论】:
标签: python windows winapi windows-vista permissions