青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Modifying Existing DACLs of an Object Program Example

// Modifying DACL of an object. In ACL there are ACEs...

// Here we are going to add deny standard right

// access for Administrators group. This Win XP machine is

// logged in by user named Mike spoon who is a member of Administrators group

#include <windows.h>

#include <aclapi.h>

#include <stdio.h>

 

// Clean up the allocated resources

void Cleanup(PSECURITY_DESCRIPTOR pSD, PACL pNewDACL)

{

      if(pSD != NULL)

            LocalFree((HLOCAL) pSD);

      else

            wprintf(L"pSD freed up\n");

      if(pNewDACL != NULL)

            LocalFree((HLOCAL) pNewDACL);

      else

            wprintf(L"pNewDACL freed up\n");

}

 

int wmain(int argc, WCHAR **argv)

{

      // Name of object, here we will add ACE for a directory

      // the directory is already created

      LPTSTR pszObjName = L"\\\\?\\C:\\NewDACLDir";

      // Type of object, file or directory.  Here we test on directory

      SE_OBJECT_TYPE ObjectType = SE_FILE_OBJECT;

      // Access mask for new ACE equal to 0x001F0000 flags (bit 0 till 15)

      DWORD dwAccessRights = STANDARD_RIGHTS_ALL;

      // Type of ACE, Access denied ACE

      ACCESS_MODE AccessMode = DENY_ACCESS;

      // Inheritance flags for new the ACE. The OBJECT_INHERIT_ACE and

      // CONTAINER_INHERIT_ACE flags are

      // not propagated to an inherited ACE.

      DWORD dwInheritance = NO_PROPAGATE_INHERIT_ACE;

      // format of trustee structure, the trustee is name

      TRUSTEE_FORM TrusteeForm = TRUSTEE_IS_NAME;

     

      // Trustee for new ACE.  This just for fun...When you run once, only one

      // element will take effect.  By changing the first array element we

      // can change to other trustee and re run the program....

      // Other than Mike spoon, they are all well known trustees

      // Take note the localization issues

      WCHAR pszTrustee[4][15] = {L"Administrators", L"System", L"Users", L"Mike spoon"};

     

      // Result

      DWORD dwRes = 0;

      // Existing and new DACL pointers...

      PACL pOldDACL = NULL, pNewDACL = NULL;

      // Security descriptor

      PSECURITY_DESCRIPTOR pSD = NULL;

      SecureZeroMemory(&pSD, sizeof(PSECURITY_DESCRIPTOR));

      // EXPLICIT_ACCESS structure.  For more than one entries,

      // declare an array of the EXPLICIT_ACCESS structure

      EXPLICIT_ACCESS ea;

 

      // Verify the object name validity

      if(pszObjName == NULL)

      {

            wprintf(L"The object name is invalid!\n");

            return ERROR_INVALID_PARAMETER;

      }

      else

            wprintf(L"The object name is valid, \"%s\"\n", pszObjName);

     

      // Verify that our new trustee strings is OK

      for(int i = 0; i <= 3; i++)

            wprintf(L"Test pointer #%d: %s\n", i, pszTrustee[i]);

     

      // Get a pointer to the existing DACL.

      dwRes = GetNamedSecurityInfo(pszObjName, ObjectType,

            DACL_SECURITY_INFORMATION,

            NULL,

            NULL,

            &pOldDACL,

            NULL,

            &pSD);

     

      // Verify

      if(dwRes != ERROR_SUCCESS)

      {

            wprintf(L"GetNamedSecurityInfo() failed, error %u\n", dwRes);

            Cleanup(pSD, pNewDACL);

      }

      else

            wprintf(L"GetNamedSecurityInfo() is OK\n");

     

      // Initialize an EXPLICIT_ACCESS structure for the new ACE.

      // For more entries, declare an array of the EXPLICIT_ACCESS structure

      SecureZeroMemory(&ea, sizeof(EXPLICIT_ACCESS));

      ea.grfAccessPermissions = dwAccessRights;

      ea.grfAccessMode = AccessMode;

      ea.grfInheritance= dwInheritance;

      ea.Trustee.TrusteeForm = TrusteeForm;

     

      // Test for Administrators group, a new trustee for the ACE

      // For other trustees, you can try changing

      // the array index to 1, 2 and 3 and rerun, see the effect

      ea.Trustee.ptstrName = (LPTSTR)(pszTrustee[0]);

     

      // Create a new ACL that merges the new ACE into the existing DACL.

      dwRes = SetEntriesInAcl(1, &ea, pOldDACL, &pNewDACL);

     

      //  Verify

      if(dwRes != ERROR_SUCCESS)

      {

            wprintf(L"SetEntriesInAcl() failed, error %u\n", dwRes);

            Cleanup(pSD, pNewDACL);

      }

      else

            wprintf(L"SetEntriesInAcl() working fine!\n");

     

      // Attach the new ACL as the object's DACL.

      dwRes = SetNamedSecurityInfo(pszObjName, ObjectType,

            DACL_SECURITY_INFORMATION,

            NULL,

            NULL,

            pNewDACL,

            NULL);

     

      if(dwRes != ERROR_SUCCESS)

      {

            wprintf(L"SetNamedSecurityInfo() failed, error %u\n", dwRes);

            Cleanup(pSD, pNewDACL);

      }

      wprintf(L"SetNamedSecurityInfo() is OK\n");

      return 0;

}

Build and run the project. The following screenshot is a sample output.

 

 

Then verify through the C:\NewDACLDir directory property pages again.

 

 

Under the Permission for Administrators group, the Special Permissions is ticked for the Deny permission.  Keep in mind that Deny overrides the Allow permission.  The following figure also confirmed that our new ACE for the Deny is not inherited.

 

 

Remember that, DENY overwrites ALLOW permission.  For this case because Mike spoon is a member of the Administrators group, however he cannot delete or open the C:\\NewDACLDir directory.  We have to log off and login again as other Administrators group user or create another user that is a member of Administrators or take the object’s ownership or just edit the permission entries (shown at the end of this section).  When we try to delete the folder, the following message was displayed. Well, it funny isn’t it? A user of Administrators group cannot delete/open his/her own folder.

 

 

It is same when we want to open the folder, it is not accessible.

 

 

So, whatever it is, please don’t mess up your machine. The following steps show how to re-enable the Full Control for Administrators group.

 

 

 

posted on 2011-08-23 13:41 wrh 閱讀(473) 評論(1)  編輯 收藏 引用

評論

# re: Modifying Existing DACLs of an Object Program Example 2011-08-23 13:51 代孕

我來逛逛,順便幫博主頂一下,嘿嘿。  回復  更多評論   

導航

<2010年5月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

統計

常用鏈接

留言簿(19)

隨筆檔案

文章檔案

收藏夾

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久疯狂做爰流白浆xx| 欧美成人一区二区三区在线观看| 欧美激情第8页| 蜜桃av久久久亚洲精品| 亚洲免费观看在线视频| 亚洲精品社区| 国产精品呻吟| 免费亚洲婷婷| 欧美精品精品一区| 亚洲欧美国产精品va在线观看| 在线亚洲观看| 狠狠色综合网站久久久久久久| 嫩草伊人久久精品少妇av杨幂| 欧美成人乱码一区二区三区| 一区二区三区精品视频在线观看| 亚洲一区精品电影| 狠狠色伊人亚洲综合成人| 欧美成人免费在线| 国产精品成人午夜| 美女久久一区| 欧美日韩一区二区国产| 久久理论片午夜琪琪电影网| 在线一区二区三区四区| 亚洲欧美日韩精品久久久| 亚洲第一天堂av| 亚洲午夜电影网| 亚洲国产精品成人一区二区 | 国产视频欧美| 亚洲国产一二三| 国产精品免费看| 欧美国产一区二区在线观看| 国产精品久久久久久久久久三级 | 欧美成人中文| 久久九九国产精品| 欧美日韩精品免费观看视频| 鲁大师成人一区二区三区| 欧美日韩一区精品| 欧美二区不卡| 国产午夜精品久久久| 99国产精品视频免费观看一公开| 精品99一区二区| 亚洲自拍偷拍视频| 亚洲图色在线| 免费观看亚洲视频大全| 久久精品国产2020观看福利| 欧美视频精品在线| 最新亚洲电影| 亚洲国产另类 国产精品国产免费| 午夜精品久久99蜜桃的功能介绍| 在线亚洲一区二区| 欧美精品久久天天躁| 欧美成人精品高清在线播放| 国产在线精品一区二区夜色| 亚洲欧美精品一区| 性欧美videos另类喷潮| 欧美性淫爽ww久久久久无| 亚洲精品免费看| 日韩午夜免费| 欧美日韩一区视频| 亚洲精品之草原avav久久| 99精品国产一区二区青青牛奶| 蜜桃av噜噜一区| 亚洲电影毛片| 99国产精品| 欧美日韩成人在线播放| 亚洲美女精品久久| 亚洲一区二区三区四区五区午夜 | 欧美国产综合| 日韩视频中文字幕| 亚洲一区二区三区中文字幕 | 美腿丝袜亚洲色图| 亚洲国产精品999| 99精品国产高清一区二区 | 美女福利精品视频| 亚洲高清影视| 99国产欧美久久久精品| 欧美午夜一区| 性色av一区二区三区红粉影视| 久久精品中文字幕一区二区三区| 国产原创一区二区| 久久综合色天天久久综合图片| 亚洲第一网站| 亚洲一区亚洲| 麻豆成人在线播放| 亚洲精品一区二区三区不| 欧美性片在线观看| 久久av一区二区| 亚洲高清自拍| 香蕉尹人综合在线观看| 尤物视频一区二区| 欧美日韩亚洲高清| 欧美一区午夜精品| 亚洲激情视频| 欧美制服丝袜第一页| 亚洲国产精品999| 欧美午夜精品一区| 久久九九国产| 亚洲私人黄色宅男| 欧美国产视频日韩| 欧美尤物一区| 日韩一区二区精品视频| 国产一区二区高清| 欧美日韩午夜激情| 久久久久这里只有精品| 日韩一本二本av| 久久手机免费观看| 亚洲欧美激情一区二区| 亚洲电影自拍| 国产日韩欧美综合| 欧美日韩一区二区三区免费看| 久久久久99| 亚洲伊人一本大道中文字幕| 亚洲福利国产精品| 久久精品国产视频| 亚洲午夜激情网页| 亚洲国产婷婷香蕉久久久久久| 国产精品视频专区| 欧美日韩在线第一页| 免费视频一区| 久久久在线视频| 久久av红桃一区二区小说| 亚洲小说欧美另类社区| 亚洲精品视频一区二区三区| 美女视频黄 久久| 久久国产高清| 欧美资源在线| 欧美一区二区三区四区在线观看| 日韩视频免费观看高清在线视频 | 另类专区欧美制服同性| 久久国产精品黑丝| 午夜精品久久久久久久蜜桃app | 校园春色综合网| 亚洲午夜一区| 一本久道久久综合狠狠爱| 亚洲国产美女精品久久久久∴| 在线播放视频一区| 国内精品久久久久久久97牛牛| 国产精品一二三四区| 国产精品狼人久久影院观看方式| 欧美午夜三级| 国产精品激情电影| 国产精品女同互慰在线看| 国产精品xvideos88| 国产精品黄视频| 国产精品视频自拍| 国产一区二区成人| 一区二区三区在线观看欧美| 在线成人av.com| 亚洲电影在线看| 亚洲精品国产系列| 99精品热6080yy久久 | 国产日韩亚洲欧美| 伊人久久婷婷| 日韩一级不卡| 亚洲欧美另类在线观看| 欧美在线观看日本一区| 久久免费高清视频| 欧美电影免费观看大全| 亚洲另类视频| 亚洲一区二区欧美| 久久精品男女| 欧美国产丝袜视频| 国产精品露脸自拍| 国产伊人精品| 亚洲精品久久久久久久久久久久久 | 国产精品久久久久久久7电影| 国产麻豆午夜三级精品| 国内精品久久久久久久果冻传媒 | 日韩视频在线观看国产| 亚洲欧美精品在线观看| 久久婷婷激情| 亚洲另类春色国产| 午夜精品一区二区三区电影天堂 | 欧美不卡在线视频| 国产精品jvid在线观看蜜臀| 国精品一区二区| 亚洲最新在线视频| 久久久免费精品| 亚洲精品字幕| 久久久五月婷婷| 欧美三日本三级少妇三2023| 国产最新精品精品你懂的| 国产精品99久久不卡二区| 久久亚洲电影| 日韩视频专区| 另类专区欧美制服同性| 国产精品视频| 亚洲日本成人女熟在线观看| 欧美一级视频一区二区| 亚洲欧洲精品一区二区三区波多野1战4| 亚洲亚洲精品三区日韩精品在线视频 | 亚洲视频1区| 欧美福利影院| 黄色免费成人| 欧美中文字幕在线| 一本色道久久综合亚洲精品不| 卡一卡二国产精品| 国内成+人亚洲+欧美+综合在线| 亚洲午夜精品福利| 亚洲片在线资源|