Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2011, 22:17   #1
Loppa
Новичок
Джуниор
 
Регистрация: 25.09.2011
Сообщений: 2
По умолчанию В принципе должен запрещать полный доступ к файлу

В принципе, должен запрещаться полный доступ к файлу группе Everyone и разрешать его группе администраторов. У меня компилируется, запускается и... ничего с файлом не делается Подскажите, пожалуйста.
Код:
#pragma comment(lib, "advapi32.lib")

#include <windows.h>
#include <stdio.h>
#include <aclapi.h>
#include <tchar.h>

void main()
{

 DWORD dwRes, dwDisposition;
  PSID pEveryoneSID = NULL, pAdminSID = NULL;
  PACL pACL = NULL;
  PSECURITY_DESCRIPTOR pSD = NULL;
  EXPLICIT_ACCESS ea[2];
  SID_IDENTIFIER_AUTHORITY SIDAuthWorld = SECURITY_WORLD_SID_AUTHORITY;
  SID_IDENTIFIER_AUTHORITY SIDAuthNT = SECURITY_NT_AUTHORITY;
  SECURITY_ATTRIBUTES sa;
  LONG lRes;
  HKEY hkSub = NULL;
 
  // Create a well-known SID for the Everyone group.
  if(!AllocateAndInitializeSid(&SIDAuthWorld, 1, SECURITY_WORLD_RID, 0, 0, 0, 0, 0, 0, 0, &pEveryoneSID))
  {
    ShowMessage("AllocateAndInitializeSid Error %u\n");
    goto Cleanup;
  }
  
  // Initialize an EXPLICIT_ACCESS structure for an ACE.
  // The ACE will allow Everyone read access to the key.
  ZeroMemory(&ea, 2 * sizeof(EXPLICIT_ACCESS));
  ea[0].grfAccessPermissions = FILE_ALL_ACCESS ;
  ea[0].grfAccessMode = DENY_ACCESS;
  ea[0].grfInheritance= NO_INHERITANCE;
  ea[0].Trustee.TrusteeForm = TRUSTEE_IS_SID;
  ea[0].Trustee.TrusteeType = TRUSTEE_IS_WELL_KNOWN_GROUP;
  ea[0].Trustee.ptstrName  = (LPTSTR) pEveryoneSID;
 
  // Create a SID for the BUILTIN\Administrators group.
  if(!AllocateAndInitializeSid(&SIDAuthWorld, 1, SECURITY_WORLD_RID, 0, 0, 0, 0, 0, 0, 0, &pEveryoneSID))
  {
    ShowMessage("AllocateAndInitializeSid Error %u\n");
    goto Cleanup; 
  }
 
  // Initialize an EXPLICIT_ACCESS structure for an ACE.
  // The ACE will allow the Administrators group full access to
  // the key.
 
  ea[1].grfAccessPermissions = NULL ;
  ea[1].grfAccessMode = SET_ACCESS;
  ea[1].grfInheritance= NO_INHERITANCE;
  ea[1].Trustee.TrusteeForm = TRUSTEE_IS_SID;
  ea[1].Trustee.TrusteeType = TRUSTEE_IS_WELL_KNOWN_GROUP;
  ea[1].Trustee.ptstrName  = (LPTSTR) pEveryoneSID;
 
  // Create a new ACL that contains the new ACEs.
  dwRes = SetEntriesInAcl(2, ea, NULL, &pACL);
  if (ERROR_SUCCESS != dwRes)
  {
    ShowMessage("SetEntriesInAcl Error %u\n");
    goto Cleanup;
  }
 
  Cleanup:;
  SetNamedSecurityInfo( "C:\\Test\\Test.txt", SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, pEveryoneSID , NULL,  pACL, NULL); 
}
Loppa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен полный доступ к профилю вконтакте santyc Фриланс 5 16.07.2009 16:00
Из процесса получить полный путь к ехе файлу. Ozerich Общие вопросы Delphi 4 08.08.2008 12:12
Как узнать полный путь к *.ехе файлу SeЯgey Помощь студентам 3 27.05.2008 09:46
Как получить полный путь к файлу, который был послан на принтер? Stilet Общие вопросы Delphi 7 29.02.2008 17:49
как в memo выводит полный путь к файлу? Файлом является данная программа. Alar Компоненты Delphi 0 29.10.2006 23:24