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

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>
            男人的天堂亚洲| 久久午夜精品一区二区| 国产精品99久久久久久久久久久久 | 亚洲国产精品女人久久久| 欧美日韩国产在线| 麻豆久久婷婷| 欧美日韩一区二区三区免费| 欧美日韩成人综合天天影院| 欧美国内亚洲| 亚洲性视频网址| 99热这里只有成人精品国产| 亚洲高清中文字幕| 在线日本欧美| 亚洲高清在线播放| 亚洲国产91色在线| 亚洲大胆女人| 亚洲人成人一区二区三区| 亚洲国产欧美精品| 亚洲激情啪啪| 在线性视频日韩欧美| 中文一区二区在线观看| 亚洲中字黄色| 久久精品日韩欧美| 亚洲国产色一区| 91久久国产综合久久91精品网站| 先锋资源久久| 久久久久久网址| 欧美高清在线视频观看不卡| 亚洲韩国一区二区三区| 亚洲伦理在线免费看| 亚洲一区成人| 久久久青草婷婷精品综合日韩| 国产午夜精品理论片a级大结局| 欧美三级网址| 欧美人与性动交a欧美精品| 美腿丝袜亚洲色图| 欧美片在线观看| 久久久999精品免费| 老司机一区二区三区| 日韩一级精品视频在线观看| 一本久久a久久精品亚洲| 亚洲黄色小视频| 一区二区三区黄色| 日韩视频国产视频| 欧美一区二区大片| 欧美96在线丨欧| 极品少妇一区二区三区| 亚洲欧洲三级电影| 欧美成年人网| 久久精品日韩一区二区三区| 国产美女精品视频免费观看| 在线亚洲一区| 亚洲精品无人区| 每日更新成人在线视频| 在线观看三级视频欧美| 老巨人导航500精品| 欧美一区=区| 国产一区99| 久久精品视频一| 午夜免费电影一区在线观看| 国产欧美日韩麻豆91| 久久成人精品一区二区三区| 亚洲男人第一av网站| 国产精品综合久久久| 久久精品国产精品| 久久九九电影| 亚洲电影天堂av| 亚洲激情午夜| 国产精品扒开腿做爽爽爽软件| 亚洲深夜av| 亚洲一级在线观看| 国产精品影视天天线| 欧美一区二区在线免费观看| 先锋影音国产一区| 亚洲第一中文字幕在线观看| 亚洲国产成人在线播放| 欧美激情视频网站| 亚洲欧美日韩天堂一区二区| 亚洲图片在线| 狠狠色噜噜狠狠色综合久| 欧美高清视频一区二区三区在线观看| 久久先锋资源| 一本色道久久加勒比精品| 中文精品视频一区二区在线观看| 欧美亚洲自偷自偷| 在线电影国产精品| 亚洲国产精品久久91精品| 欧美日韩久久久久久| 久久激情五月婷婷| 久热精品在线| 亚洲欧美在线看| 久久五月天婷婷| 一区二区三区欧美成人| 午夜精品福利一区二区蜜股av| 一区在线播放视频| 亚洲裸体俱乐部裸体舞表演av| 国产精品国产| 亚洲第一黄网| 国产欧美精品一区二区色综合| 久久资源av| 国产精品久久国产精品99gif | 日韩视频在线免费观看| 国产精品久久久久毛片大屁完整版 | 久久精品91| 日韩一区二区精品| 欧美一级大片在线观看| 一本大道久久a久久精二百| 欧美一区二区三区的| 亚洲美女免费视频| 久久精品国产免费| 亚洲免费一区二区| 欧美激情成人在线| 欧美成人首页| 狠狠久久婷婷| 午夜欧美不卡精品aaaaa| 制服丝袜激情欧洲亚洲| 可以免费看不卡的av网站| 亚洲欧美日韩国产| 欧美另类变人与禽xxxxx| 老巨人导航500精品| 国产精品一二一区| 99视频一区| 日韩午夜在线播放| 欧美成年网站| 美脚丝袜一区二区三区在线观看 | 亚洲精选一区| 久久精品成人欧美大片古装| 亚洲一二三区视频在线观看| 欧美成人一品| 亚洲一线二线三线久久久| 欧美激情综合五月色丁香| 美女视频黄免费的久久| 国产综合欧美在线看| 亚洲免费影视| 久久精品一级爱片| 亚洲女同性videos| 亚洲在线网站| 欧美色视频日本高清在线观看| 亚洲承认在线| 国产精品久久一级| 中国成人亚色综合网站| 一本大道av伊人久久综合| 欧美精品一区二区三区视频 | 欧美成人蜜桃| 亚洲国产另类久久久精品极度| 久久琪琪电影院| 亚洲电影在线观看| 一区二区三区欧美日韩| 国产精品久久九九| 欧美亚洲系列| 欧美成人综合网站| 亚洲免费观看高清在线观看 | 精品999日本| 免费欧美日韩| 99精品99| 久久国产精品99国产精| 亚洲国产mv| 开心色5月久久精品| 亚洲国产欧美一区| 亚洲天堂视频在线观看| 国产精品综合| 男同欧美伦乱| 亚洲一区国产一区| 欧美成人首页| 欧美一区二区免费观在线| 激情六月婷婷综合| 欧美日韩国产大片| 久久超碰97中文字幕| 亚洲欧洲视频在线| 欧美一级淫片播放口| 在线播放亚洲| 国产精品videosex极品| 久久久久网址| 亚洲午夜电影网| 欧美国产日韩免费| 午夜日韩在线| 99国产精品久久久久久久成人热| 国产精品色婷婷| 欧美国产亚洲视频| 久久激情中文| 一区二区三区福利| 欧美黄在线观看| 欧美一区二区三区婷婷月色| 日韩网站在线| 亚洲二区免费| 国产日本精品| 欧美网站在线观看| 欧美成年人视频| 久久精品最新地址| 香蕉久久夜色| 亚洲一区视频| 日韩视频免费观看| 亚洲东热激情| 免费成人网www| 久久精精品视频| 午夜精品理论片| 亚洲欧美日韩高清| 亚洲夜间福利| 亚洲自拍都市欧美小说| 在线一区二区三区四区|