查看文件夹权限命令(文件管理访问限制)

有这么一个简单需求

有时候,你可能希望判断是否对文件或者文件夹有某种权限,但是又不想实际操作,只是简单的判断而已。举个例子,你可能向快速地知道是否对某个文件夹是否有删除里面文件的权限。

一种方法是:获取该对象的ACL,然后检查是否当前用户拥有希望的权限。有一个API AccessCheck可以做这件事情,调用起来也比较简单。

这个时候,可能你会想:”等会,系统里应该有一个完整的安全组件,来判断谁可以访问哪个文件。为什么不使用这个安全组件的功能呢?”

举个例子:下面的代码演示了如何检查某个用户是否具有删除一个文件夹里的文件的权限。

查看文件夹权限命令(文件管理访问限制)

代码解析

我们通过调用CreateFile这个API来尝试性地打开目标文件夹(你可以观察到,我们代码中指定了一个FILE_FLAG_BACKUP_SEMANTICS标志),然后请求FILE_DELETE_CHILD操作权限,如果操作成功,我们就能知道:当前用户有权限删除文件夹中的文件。再一个需要注意的是:当CreateFile返回一个有效句柄后,我们不要忘记关闭这个句柄,以避免资源泄露。最后,我们对CreateFile的返回值进行了比较,如果返回值有效,则说明我们具有我们希望的权限。

请注意,上述得到的信息,只是用来作为参考的。所以,请不要基于这个信息来做出任何安全方面的操作,为什么?因为权限会实时变动,可能在你实际进行操作的时候,权限已经不再是你之前获取到的权限了。

总结

我突然想起WinXP那会儿,人人都是Administrator的魔幻时代。有道是:不是Admin不舒服斯基。

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。本文来自:《An easy way to determine whether you have a particular file permission》

(0)
小多多的头像小多多创始人

相关推荐

发表回复

登录后才能评论