设为首页 加入收藏

TOP

设置文件(夹)的用户访问权限
2014-11-11 13:45:07 】 浏览:8975
Tags:设置 文件 用户 访问 权限

  一般Windows下的系统文件(夹)只让受限帐户读取而不让写入和修改。如果要开启写操作权限就需要手动修改文件(夹)的用户帐户安全权限(这操作当然要在管理员帐户下执行).以下用程序封装了一下该操作:


  先来个API版本:


  //


  // 启用某个账户对某个文件(夹)的所有操作权限


  // pszPath: 文件(夹)路径


  // pszAccount: 账户名称


  //


  BOOL EnableFileAccountPrivilege (PCTSTR pszPath, PCTSTR pszAccount)


  {


  BOOL bSuccess = TRUE;


  PACL pNewDacl = NULL, pOldDacl = NULL;


  EXPLICIT_ACCESS ea;


  do


  {


  // 获取文件(夹)安全对象的DACL列表


  if (ERROR_SUCCESS != ::GetNamedSecurityInfo ((LPTSTR)pszPath, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, &pOldDacl, NULL, NULL))


  {


  bSuccess = FALSE;


  break;


  }


  // 此处不可直接用AddAccessAllowedAce函数,因为已有的DACL长度是固定,必须重新创建一个DACL对象


  // 生成指定用户帐户的访问控制信息(这里指定赋予全部的访问权限)


  ::BuildExplicitAccessWithName (&ea, (LPTSTR)pszAccount, GENERIC_ALL, GRANT_ACCESS, SUB_CONTAINERS_AND_OBJECTS_INHERIT);


  // 创建新的ACL对象(合并已有的ACL对象和刚生成的用户帐户访问控制信息)


  if (ERROR_SUCCESS != ::SetEntriesInAcl(1, &ea, pOldDacl, &pNewDacl))


  {


  bSuccess = FALSE;


  break;


  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇修改线程名称并在VC调试器中显示 下一篇C++replace()函数基本应用方法总结

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目