如何实现更改文件夹的权限?
我的程序时在System权限上运行。1.创建文件夹。
2.进行一系列操作。
3.切换用户(或者伪装为另外一个用户。假设这个用户名为test。test隶属于users组)。
4.在step1中生成的文件夹里写文件。
5.用户切换回复(回复到System权限)。
6.进行一系列操作。
.
.
.
在上面的处理流程中,step4存在问题。文件写入失败。
原因是,只有system权限的用户可以stemp1中创建的文件夹中写入文件。
test用户是没有这个权限的。所以写入失败。
能不能在step1中,在创建文件夹时指定权限。时test用户能够拥有写入权限?
测试环境:2000,xp,vista,win7
由于业务原因,处理流程是不能被改变的。
各位,帮忙啊。分值不够,可以加+++++ --------------------编程问答-------------------- 啊啊。有错别字。谅解。 --------------------编程问答-------------------- 太有才了。
解决了。
--------------------编程问答-------------------- --------------------编程问答--------------------
if(isDirFileExist(subDir) != 0){
SECURITY_ATTRIBUTES sa;
SECURITY_DESCRIPTOR sd;
InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(&sd,TRUE,NULL,FALSE);
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = TRUE;
sa.lpSecurityDescriptor = &sd;
if(0== CreateDirectory(subDir,&sa)){
log_info("Create Sub Directory [" + subDir + "] : FAILED");
return -1;
}else{
log_info("Create Sub Directory [" + subDir + "] : OK");
}
}
恭喜LZ --------------------编程问答--------------------
结贴吧 --------------------编程问答-------------------- if(isDirFileExist(subDir) != 0){
SECURITY_ATTRIBUTES sa;
SECURITY_DESCRIPTOR sd;
InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(&sd,TRUE,NULL,FALSE);
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = TRUE;
sa.lpSecurityDescriptor = &sd;
if(0== CreateDirectory(subDir,&sa)){
log_info("Create Sub Directory [" + subDir + "] : FAILED");
return -1;
}else{
log_info("Create Sub Directory [" + subDir + "] : OK");
}
}
哈哈…… --------------------编程问答--------------------
楼主还是挺厉害的嘛 --------------------编程问答--------------------
恭喜LZ
补充:.NET技术 , VC.NET