如何把注册表权限的勾去掉

蒙飞鸿 2011-03-20 10:16:37
最近做修改注册表权限.
BuildExplicitAccessWithName(&eia,"Administrators",KEY_ALL_ACCESS,NOT_USED_ACCESS,SUB_CONTAINERS_AND_OBJECTS_INHERIT);
这个函数第3个参数为SET_ACCESS的话,会给允许打上勾,为DENY_ACCESS的时候,会给拒绝打上勾.
怎么把允许和拒绝都勾都去掉呢?试了几个ACCESS_MODE都没成功,求助!

以上就是我的问题了,
顺便说一个试出的知识:如果该注册表项权限是继承的,那么可能会有些勾是灰.的通过SetNamedSecurityInfo第3个参数或上一个参数"|PROTECTED_DACL_SECURITY_INFORMATION"就能去掉继承了,也就是使勾不灰了.
...全文
302 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
雪域红狼 2013-08-09
  • 打赏
  • 举报
回复
你的代码SetNamedSecurityInfo调用的时候能成功?应该报错误5吧?
wodexiaobaitu 2012-09-13
  • 打赏
  • 举报
回复
你说的这种,我已经实现,我的QQ916033324,现在就是实现了就回不去,或者注册表的权限我无法随即转换,即使是管理员的权限也不行
wodexiaobaitu 2012-09-13
  • 打赏
  • 举报
回复
你说的这种,我已经实现,我的QQ916033324,现在就是实现了就回不去,或者注册表的权限我无法随即转换,即使是管理员的权限也不行
wodexiaobaitu 2012-09-13
  • 打赏
  • 举报
回复
哥们,你要的这种功能我实现了,不知道,我的QQ916033324,但是我想实现注册表的权限的随意转换,你有方法吗?
蒙飞鸿 2011-03-21
  • 打赏
  • 举报
回复
现在只能DENY_ACCESS去掉KEY_WRITE,能够做到不能修改注册表该项,但在REGEDIT界面里,完全控制的勾还是存在,感觉效果不完美。
希望这贴别到此为止了。。
蒙飞鸿 2011-03-21
  • 打赏
  • 举报
回复
上代码:
int modifyKeyAccess(LPSTR lpKey,LPSTR lpUser)
{
LPSTR KeyName = lpKey; //要修改的项路径

PACL pOldDacl=NULL;
PACL pNewDacl=NULL;
DWORD dRet;
EXPLICIT_ACCESS eia;
PSECURITY_DESCRIPTOR pSID=NULL;
dRet = GetNamedSecurityInfo(KeyName,SE_REGISTRY_KEY,DACL_SECURITY_INFORMATION,NULL,NULL,&pOldDacl,NULL,&pSID);// 获取SAM主键的DACL
if(dRet !=ERROR_SUCCESS)
{
if (pOldDacl)LocalFree(pOldDacl);
if(pNewDacl)LocalFree(pNewDacl);
if(pSID)LocalFree(pSID);
return 0;
}
//SetSecurityDescriptorControl(pOldDacl,SE_DACL_PROTECTED,SE_DACL_PROTECTED);
//创建一个ACE,允许Administrators组成员完全控制对象,并允许子对象继承此权限
ZeroMemory(&eia,sizeof(EXPLICIT_ACCESS));
BuildExplicitAccessWithName(&eia,lpUser,KEY_ALL_ACCESS,REVOKE_ACCESS,SUB_CONTAINERS_AND_OBJECTS_INHERIT);
// 将新的ACE加入DACL
dRet = SetEntriesInAcl(1,&eia,pOldDacl,&pNewDacl);



if(dRet!=ERROR_SUCCESS)
{
if (pOldDacl)LocalFree(pOldDacl);
if(pNewDacl)LocalFree(pNewDacl);
if(pSID)LocalFree(pSID);
return 0;
}
// 更新键的DACL
dRet = SetNamedSecurityInfo(KeyName,SE_REGISTRY_KEY,DACL_SECURITY_INFORMATION|PROTECTED_DACL_SECURITY_INFORMATION,NULL,NULL,pNewDacl,NULL);



if(dRet!=ERROR_SUCCESS)
{
if (pOldDacl)LocalFree(pOldDacl);
if(pNewDacl)LocalFree(pNewDacl);
if(pSID)LocalFree(pSID);
return 0;
}
//释放DACL和SID
if (pOldDacl)LocalFree(pOldDacl);
if(pNewDacl)LocalFree(pNewDacl);
if(pSID)LocalFree(pSID);
return 0;

}
蒙飞鸿 2011-03-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 arong1234 的回复:]
我记得你只加上只读的,不管full control的,就是这样了。

引用 6 楼 mengfeihong 的回复:
某个用户(组)可以设置3种权限:完全控制、读取和特别的权限。我想把完全控制的两个勾去掉,勾上读取的允许,特别的权限无所谓。
这在手工操作上是可行的,现在想通过程序来写,看起来ACCESS_MODE里面的REVOKE_ACCESS比较符合,但用了以后没见有效。
[/Quote]
不是的,使用KEY_READ和SET_ACCESS的组合,完全控制的勾也会自动勾上
arong1234 2011-03-20
  • 打赏
  • 举报
回复
我记得你只加上只读的,不管full control的,就是这样了。[Quote=引用 6 楼 mengfeihong 的回复:]
某个用户(组)可以设置3种权限:完全控制、读取和特别的权限。我想把完全控制的两个勾去掉,勾上读取的允许,特别的权限无所谓。
这在手工操作上是可行的,现在想通过程序来写,看起来ACCESS_MODE里面的REVOKE_ACCESS比较符合,但用了以后没见有效。
[/Quote]
蒙飞鸿 2011-03-20
  • 打赏
  • 举报
回复
某个用户(组)可以设置3种权限:完全控制、读取和特别的权限。我想把完全控制的两个勾去掉,勾上读取的允许,特别的权限无所谓。
这在手工操作上是可行的,现在想通过程序来写,看起来ACCESS_MODE里面的REVOKE_ACCESS比较符合,但用了以后没见有效。
蒙飞鸿 2011-03-20
  • 打赏
  • 举报
回复
我想去掉完全控制的两个勾,勾读取的允许.
Dreadnought 2011-03-20
  • 打赏
  • 举报
回复
都去掉感觉不太现实吧
arong1234 2011-03-20
  • 打赏
  • 举报
回复
我想,都去掉的效果就是你不加这个administrator吧?你加了一个帐户上去,要么给他权限,要么拒绝权限,不可能啥都不做的
蒙飞鸿 2011-03-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 arong1234 的回复:]
我记得权限只有允许/禁止和继承父节点三种吧,都去掉你要达到什么效果?
[/Quote]
手工操作的话,对于某用户(组),是可以不继承,也同时不选允许和拒绝的.
arong1234 2011-03-20
  • 打赏
  • 举报
回复
我记得权限只有允许/禁止和继承父节点三种吧,都去掉你要达到什么效果?
伴随着网络的发展,也产生了各种各样的安全问题,服务器被入侵、木马后门及垃圾病毒挂马肆意泛滥,木马无孔不入,DDoS攻击越来越常见,黑客攻击行为几乎每时每刻都在发生。如何及时的、准确的发现违反安全策略的事件,并及时处理,是广大企业用户迫切需要解决的问题。 云顿服务器安全加固系统(eisafe safety system server,简称:eisafe safety) 是云顿科技自主知识产权的安全产品,它是对服务器安全的有效加固、全自动安全加固、一键设置执行处理,从而有效的保护WEB服务器、避免黑客入侵、安全加固一体化解决方案。 云顿服务器安全加固系统是安全加固系统同类产品中的经典之作,该产品拥有业界其它产品无以比拟的高性能、高安全性、高可靠性和易操作性等特性,为用户带来了极佳的安全体验。 系统危险文件加固设置权限 eisafe safety对windows系统核心文件加固权限,去除危险用户访问权限,防止非法用户利用系统文件进行攻击。 系统危险文件夹权限加固 eisafe safety对windows系统核心文件夹进行加固,去除危险文件夹非本地用户访问。 系统危险服务优化 禁止和关闭危险服务启动,并对服务进行优化,提供服务器运行速度。 系统危险组件及注册表加固 关闭和卸载危险组件,防止WEB进行恶意调用,如内核执行DOS、远程提权用户等危险组件。 Ddos防御注册表加固 对DDOS防御进行注册表简单加固,可防止小部分攻击。 每天定时重启-时间5点 每天定时重启服务有效的清理缓存垃圾,维护服务器顺畅运行。
软件介绍 伴随着网络的发展,也产生了各种各样的安全问题,服务器被入侵、木马后门及垃圾病毒挂马肆意泛滥,木马无孔不入,DDoS攻击越来越常见,黑客攻击行为几乎每时每刻都在发生。如何及时的、准确的发现违反安全策略的事件,并及时处理,是广大企业用户迫切需要解决的问题。 云顿服务器安全加固系统(eisafe safety system server,简称:eisafe safety) 是云顿科技自主知识产权的安全产品,它是对服务器安全有效加固、全自动安全加固、一键设置执行处理,从而有效的保护WEB服务器、避免黑客入侵、安全加固一体化解决方案。 云顿服务器安全加固系统是安全加固系统同类产品中的经典之作,该产品拥有业界其它产品无以比拟的高性能、高安全性、高可靠性和易操作性等特性,为用户带来了极佳的安全体验。 系统危险文件加固设置权限 eisafe safety对windows系统核心文件加固权限,去除危险用户访问权限,防止非法用户利用系统文件进行攻击。 系统危险文件夹权限加固 eisafe safety对windows系统核心文件夹进行加固,去除危险文件夹非本地用户访问。 系统危险服务优化 禁止和关闭危险服务启动,并对服务进行优化,提供服务器运行速度。 系统危险组件及注册表加固 关闭和卸载危险组件,防止WEB进行恶意调用,如内核执行DOS、远程提权用户等危险组件。 Ddos防御注册表加固 对DDOS防御进行注册表简单加固,可防止小部分攻击。 每天定时重启-时间5点 每天定时重启服务有效的清理缓存垃圾,维护服务器顺畅运行。 Tags: 服务器安全 服务器设置 加固

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧