我有一个代码,用于在用户指定的目录中创建文件.用户可以指向无法创建文件的目录,但可以重命名.
我已经为测试目的创建了目录,让我们调用它C:\foo
.
我有以下权限C:\foo
:
遍历目录/执行文件
删除子文件夹和文件
删除
读取权限
更改权限
取得所有权
我没有以下任何权限C:\foo
:
完全控制
文件创建
文件夹创建
到目前为止,我尝试了以下方法:
os.access('C:\foo', os.W_OK) == True
st = os.stat('C:\foo')
mode = st[stat.ST_MODE]
mode & stat.S_IWRITE == True
C:\foo
C:\foo
我相信这是因为我可以重命名文件夹,所以它对我来说是多变的.但它的内容 - 不是.
有没有人知道如果当前用户有权在该目录中创建文件,我如何编写将检查给定目录的代码?
简而言之 - 我想检查当前用户是否具有给定文件夹名称的文件创建和文件夹创建权限.
编辑:需要这些代码来自'Certified for Windows Vista'计划的第3号测试案例,其中指出:
应用程序不得允许Least-Privileged用户将任何文件保存到Windows系统目录以通过此测试用例.
这应该被理解为"应用程序可能会尝试在Windows系统目录中保存文件,但不应该在失败时崩溃吗?" 或者更确切地说"应用程序必须在尝试保存文件之前执行安全检查?"
我是否应该因为Windows Vista本身不允许Least-Privileged用户在%WINDIR%中保存任何文件而停止打扰?