我的程序使用一个创建数据文件的库,有一些用户错误地“以管理员身份运行”我的程序,结果是一些数据文件是由管理员所有者创建的,普通用户无法编辑它以后。我找到了一种'drop'管理员权限,允许我的程序继续运行,例如没有用户'以管理员身份运行'?我怎么能这样做?
答案 0 :(得分:2)
要执行您的要求,您需要检测您是否以管理员身份运行,如果是,请创建受限令牌,然后使用该令牌重新启动程序。
获得类似结果的其他方法如下。
对于该组的成员,文件的所有者默认设置为administrators组。此设置可由本地安全策略控制:
在此处查看更多信息:
或者,使用CreateFile
时,您可以在创建文件时使用SECURITY_DESCRIPTOR
指定所有者,并将其设置为用户或其任何群组。
答案 1 :(得分:1)
我最终将此对象设为当前用户的新对象的所有者。
if(GetTokenInformation(hToken,TokenUser,tu,buff.size(),&rw)){
if(!SetTokenInformation(hToken,TokenOwner,tu,buff.size())){
}
}