gpt4 book ai didi

c - 设置创建的文件权限

转载 作者:行者123 更新时间:2023-12-02 21:36:35 26 4
gpt4 key购买 nike

我想知道如何设置Windows文件的权限?
类似 chmod() 的东西,而是一个 Windows。

例如:

创建文件example.exe,并以只有所有者才能访问的方式设置其权限该文件的 可以执行它。

我读到某处有一个用于 c 的 ACL API,但我不太明白。

最佳答案

这比chmod要多做很多工作!

我在创建安全描述符后冒昧地创建了该文件 - 它更安全。如果您以相反的方式执行操作(首先创建文件),那么在很短的时间内未设置所需的访问权限。

试试这个:

#include <windows.h>
#include <AclAPI.h>
#include <Lmcons.h>

int main()
{
SECURITY_DESCRIPTOR sd;
EXPLICIT_ACCESS ea[1];
PACL pDacl;
SECURITY_ATTRIBUTES sa;

TCHAR UserBuffer[UNLEN+1];
DWORD ulen = UNLEN;
GetUserName(UserBuffer, &ulen);

InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION);

BuildExplicitAccessWithName(&ea[0], UserBuffer, GENERIC_EXECUTE,
SET_ACCESS, NO_INHERITANCE);

SetEntriesInAcl(1, ea, NULL, &pDacl);
SetSecurityDescriptorDacl(&sd, TRUE, pDacl, FALSE);

sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = FALSE;
sa.lpSecurityDescriptor = &sd;

CreateFileA("c:\\temp\\example.exe", GENERIC_EXECUTE, 0, &sa,
CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0);

return 0;
}

关于c - 设置创建的文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21253728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com