Win API函数修改文件权限

Posted

技术标签:

【中文标题】Win API函数修改文件权限【英文标题】:Win API function for modifying file permissions 【发布时间】:2013-05-20 05:00:00 【问题描述】:

我正在寻找一种在 Windows 7 中使用 C 修改文件权限的方法。 例如:我想为用户 A 添加对 C:\a.txt 的读取权限, 或删除用户 B 的写入权限。

我发现了一些在 linux 中使用的函数(如 chmod),但这些在 windows 中并不好。

我确定必须存在一个 Win API 函数来执行我正在搜索的操作,有人看到我缺少的东西吗?

非常感谢您的帮助, 大卫。

【问题讨论】:

查看authorization functions。如果您使用自己喜欢的搜索引擎,也会有很多(非 SO)点击。 【参考方案1】:

已经有一段时间了,最​​初的体验并不愉快,但后来我发现 ATL Security:atlsecurity.h 使用这些东西简化了很多工作。 http://msdn.microsoft.com/en-us/library/awt7k7f5(v=vs.80).aspx

【讨论】:

我注意到对于不同类型的结构(SID、ACL、DACL)有很多功能。你能告诉我哪一个 atlsecurity.h 函数最适合我的情况吗? 我认为它们(atlsecurity 类)可以帮助您构建和管理控制列表,但您最终会调用 SetSecurityInfoSetNamedSecurityInfo (msdn.microsoft.com/en-us/library/windows/desktop/…)。 CSid::LoadAccount 应该可以帮助您找到用户 A、B 它查找了 CSid::LoadAccount 并且它的头类仅适用于 c++ 是否有 c 的替代品? 哎呀,ATL 是 C++,但你到底为什么只需要 C 呢?如果它真的是必须的,那么你可以用 C++ 编写代码来测试它,然后转换它(ATL 只是一个 C++ 瘦包装器,你可以在标题中看到所有代码),但这将是一个很棒的痛苦,因为您必须自己释放所有资源。

以上是关于Win API函数修改文件权限的主要内容,如果未能解决你的问题,请参考以下文章

WIN7 64位,安装DBC2000,因无权限修改文件,无法安装怎么解决?

通过 Win32 API 更改文件夹安全权限

Win10系统Host文件修改不了权限不足怎么办

WIN7系统中,SYSTEM32的权限怎么修改?

win7 F盘拒绝访问 无法更改权限 怎么办?

system权限怎么获得win10