首页
社区
课程
招聘
[求助]设置文件权限的问题
2010-8-23 16:01 3784

[求助]设置文件权限的问题

2010-8-23 16:01
3784
在使用BuildExplicitAccessWithName的时候,用SET_ACCESS可使用户获得完全权限!
但使用DENY_ACCESS的时候,虽然拒绝项全部打勾了,而且不能访问,但允许项里也是全部打勾的,而且是灰色不能改变!要怎么样才能设成拒绝项全部打勾,而允许项不打勾?

BOOL ChangeAccountPrivilege(LPCTSTR lpPath,LPCTSTR lpAccount,BOOL Access)
{
DWORD dwSuccess;
EXPLICIT_ACCESS ea;
ACCESS_MODE AccessMode;
PACL lpNewDacl=NULL,lpOldDacl=NULL;

if(Access) AccessMode=SET_ACCESS; else AccessMode=DENY_ACCESS;
do
{

dwSuccess=GetNamedSecurityInfo((LPTSTR)lpPath,SE_FILE_OBJECT,DACL_SECURITY_INFORMATION,NULL,NULL,&lpOldDacl,NULL,NULL);
if(dwSuccess!=ERROR_SUCCESS) return FALSE;
ZeroMemory(&ea,sizeof(EXPLICIT_ACCESS));
BuildExplicitAccessWithName(&ea,(LPTSTR)lpAccount,GENERIC_ALL,AccessMode,SUB_CONTAINERS_AND_OBJECTS_INHERIT);
dwSuccess=SetEntriesInAcl(1,&ea,lpOldDacl,&lpNewDacl);
if(dwSuccess!=ERROR_SUCCESS) return FALSE;
dwSuccess=SetNamedSecurityInfo((LPTSTR)lpPath,SE_FILE_OBJECT,DACL_SECURITY_INFORMATION,NULL,NULL,lpNewDacl,NULL);
if(dwSuccess!=ERROR_SUCCESS) { LocalFree(lpNewDacl); return FALSE; }
} while(FALSE);
LocalFree(lpNewDacl);
return TRUE;
}

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (1)
雪    币: 241
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xiluoyou 2010-8-24 15:56
2
0
。。。,没有人用过吗?
游客
登录 | 注册 方可回帖
返回