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

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 閱讀(488) 評論(1)  編輯 收藏 引用

評論

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

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


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導航

<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

統計

常用鏈接

留言簿(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>
            久久久91精品国产一区二区精品| 亚洲一区二区视频在线观看| 欧美日韩在线播放一区| 久久青青草原一区二区| 欧美日韩国产综合网| 久久免费视频在线观看| 欧美偷拍另类| 亚洲电影视频在线| 国产午夜精品美女毛片视频| 一区二区三区日韩精品| 最新亚洲电影| 久久综合九色九九| 久久久777| 国产日韩欧美亚洲一区| 亚洲午夜小视频| 亚洲免费小视频| 欧美视频一区| 99成人在线| 亚洲视频你懂的| 欧美日韩国产大片| 亚洲日本乱码在线观看| 亚洲久色影视| 欧美精品网站| 日韩写真视频在线观看| 99国产麻豆精品| 欧美日韩网址| 亚洲网址在线| 欧美中在线观看| 国产视频综合在线| 欧美在线一区二区三区| 久久免费99精品久久久久久| 韩国一区二区三区在线观看| 欧美在线观看你懂的| 久久综合精品国产一区二区三区| 国产一区二区三区在线观看网站| 欧美一区二区视频在线观看2020 | 久久精品国产2020观看福利| 欧美亚一区二区| 在线亚洲观看| 欧美中文字幕在线视频| 国产亚洲视频在线观看| 久久综合久色欧美综合狠狠| 欧美激情1区2区3区| 亚洲人成免费| 欧美国产在线电影| 99视频精品全国免费| 亚洲欧美日韩精品久久久| 国产九九精品视频| 久久久久综合网| 亚洲第一在线综合网站| 中文在线一区| 国产一区二区视频在线观看| 久久米奇亚洲| 99国产精品| 久久久五月天| 亚洲日本理论电影| 国产精品欧美久久| 久久久久久一区二区三区| 亚洲人成网站色ww在线| 性欧美1819sex性高清| 樱桃视频在线观看一区| 欧美涩涩网站| 久久一区二区三区国产精品| 日韩一区二区精品| 久久视频这里只有精品| 一区二区三区欧美激情| 国产一区二区三区最好精华液| 老司机午夜免费精品视频| 中文国产成人精品久久一| 久久蜜桃精品| 亚洲一区二区精品在线观看| 在线观看三级视频欧美| 欧美午夜精品理论片a级按摩| 久久久人人人| 亚洲一区二区三区精品在线观看| 欧美国产一区二区三区激情无套| 性8sex亚洲区入口| 亚洲人成网站777色婷婷| 国产三区二区一区久久| 欧美色欧美亚洲另类七区| 久久在线免费| 午夜在线观看免费一区| 亚洲精品美女91| 欧美sm极限捆绑bd| 久久久精品一区| 亚洲欧美日韩精品一区二区| 亚洲日本无吗高清不卡| 精品动漫一区| 国产日产欧美一区| 国产精品第三页| 欧美日韩国产一区二区三区地区| 久久一区二区精品| 久久精品国产一区二区三| 亚洲视频一二区| 一本久久a久久免费精品不卡| 亚洲电影免费观看高清完整版在线观看 | 欧美日韩免费观看一区=区三区| 久久国产主播| 欧美一区二区三区免费在线看| 一本大道久久精品懂色aⅴ| 亚洲丶国产丶欧美一区二区三区 | 亚洲国产成人不卡| 欧美sm重口味系列视频在线观看| 久久精品99无色码中文字幕 | 一区二区三区av| 亚洲伦理在线观看| 亚洲裸体俱乐部裸体舞表演av| **网站欧美大片在线观看| 激情欧美一区二区三区在线观看| 国产亚洲一区二区三区在线播放 | 亚洲国产日韩一区| 亚洲国产精品美女| 亚洲欧洲一区| 99亚洲一区二区| 9色porny自拍视频一区二区| aaa亚洲精品一二三区| 在线视频你懂得一区二区三区| 中国日韩欧美久久久久久久久| 亚洲区国产区| 亚洲午夜电影网| 欧美亚洲一区二区在线观看| 久久国产精品一区二区三区| 久久精品女人| 免费观看在线综合色| 亚洲第一天堂无码专区| 亚洲电影免费观看高清完整版在线| 国产精品亚洲产品| 国产日韩欧美另类| 国模精品一区二区三区色天香 | 国产色婷婷国产综合在线理论片a| 国产一区二区丝袜高跟鞋图片| 国产一区二区在线免费观看| 精久久久久久| 亚洲乱码日产精品bd| 亚洲欧美精品suv| 欧美资源在线| 亚洲高清免费在线| 制服丝袜亚洲播放| 欧美专区在线观看一区| 嫩草国产精品入口| 欧美视频在线观看免费网址| 国产一区观看| 日韩一区二区免费高清| 欧美一区亚洲| 欧美激情导航| 亚洲永久在线| 欧美成人免费播放| 国产精品亚洲成人| 亚洲国产三级网| 午夜精品福利一区二区三区av| 美女精品自拍一二三四| 99亚洲一区二区| 久久午夜视频| 国产精品亚洲精品| 亚洲欧洲在线一区| 久久精品二区三区| 亚洲美女色禁图| 久久久噜噜噜久久中文字免| 欧美日本免费| 悠悠资源网久久精品| 亚洲永久网站| 亚洲日本成人网| 久久久久久9999| 国产精品一区免费视频| 99视频一区二区| 免费欧美日韩国产三级电影| 亚洲午夜女主播在线直播| 欧美va亚洲va国产综合| 国产综合在线看| 亚洲欧美日韩国产综合| 亚洲日本在线观看| 玖玖国产精品视频| 韩国欧美一区| 欧美在线视频免费播放| 99精品视频网| 欧美激情在线有限公司| 亚洲国产精品成人va在线观看| 久久精品国产77777蜜臀| 中文av字幕一区| 欧美日韩国产成人在线91| 亚洲欧洲日韩女同| 免费观看一区| 久久久亚洲精品一区二区三区 | 久久夜色精品国产亚洲aⅴ| 亚洲午夜羞羞片| 欧美日韩精品免费看| 亚洲精品久久久久久久久久久久久| 久久国产一区| 性久久久久久久久久久久| 国产欧美一级| 欧美一区在线视频| 亚洲欧美日韩精品久久久| 国产精品私拍pans大尺度在线| 亚洲特色特黄| 一区二区三区欧美在线| 欧美午夜视频在线观看| 亚洲一区二区三区高清| 一区二区三区欧美成人| 国产精品久久久久久久久免费樱桃| 亚洲一区二区三区免费视频|