информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
[C++] Если я правильно понял, то имеются в виду права которые нарисованы во вкладке безопасность 20.06.05 14:19  Число просмотров: 1890
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
Там как раз 6 стандартных прав (магическое число, указанное в корневом посте) и галка для specific rights которая включается, если есть хоть одно из них

А вообще, надо предложить выкладывать фотографию своего компьютера и/или программы - будем лечить.
<programming>
[C++] дополнителные разрешения NTFS 19.06.05 23:24  
Автор: Lena Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Как получить доступ к дополнительным разрашениям NTFS. Доступ к основным шести разрешениям можно пулучить с помощью API функций (GetNamedSecurityInfo() например), которые возвращают Security Descriptor для файла, содержащий в свою очередь DACL. В DACL основные разрешения, а где хранятся дополнительные? Подскажите, пожалуйста.
[C++] В DACL хранятся ВСЕ разрешения для объекта 20.06.05 12:16  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> содержащий в свою очередь DACL. В DACL основные разрешения,
> а где хранятся дополнительные? Подскажите, пожалуйста.
Но объект может унаследовать ACL от родителя.

Не тестировал, но что то мне подсказывает, что такие унаследованные ACE будут иметь флаг INHERITED_ACE
[C++] У Лены какие-то стуки подземные... Может она вообще, SACL имеет ввиду? ;-) 20.06.05 13:09  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 20.06.05 13:11  Количество правок: 1
<"чистая" ссылка>
Короче... Есть такой объект ядра в системе, называется Файл.

Он имеет методы для работы с ним... Они экспортируются соотв. файловым API Windows.
В DACL хранятся параметры самого DACL'a, и список ACL'ов. В каждом ACL'е два интересующих нас поля: SID и ACCESS_MASK. Дык вот, маска доступа по сути своей фильтр, который не "пропускает" некоторые методы работы с файлами для клиента, который хочет работать с защищённым объектом (файлом).

Кстати, GetNamedSecurityInfo (у вас) какой-то неуклюжий, для файлов есть специальный вариант -- GetFileSecurity. К тому же, для её работы не надо иметь дескриптор файла, имени достаточно...

Поле ACCESS_MASK задокументировано в... winnt.h

//  Define the access mask as a longword sized structure divided up as
//  follows:
//
//       3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//       1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//      +---------------+---------------+-------------------------------+
//     G|G|G|G|Res'd|AStandardRights|         SpecificRights        |
//     R|W|E|A   S              |                               |
//      +-+-------------+---------------+-------------------------------+
//
//      typedef struct _ACCESS_MASK {
//          WORD   SpecificRights;
//          BYTE  StandardRights;
//          BYTE  AccessSystemAcl : 1;
//          BYTE  Reserved : 3;
//          BYTE  GenericAll : 1;
//          BYTE  GenericExecute : 1;
//          BYTE  GenericWrite : 1;
//          BYTE  GenericRead : 1;
//      } ACCESS_MASK;
//      typedef ACCESS_MASK *PACCESS_MASK;

---
Эта маска состоит из Generic, Standard, и наконец, SpecificRights. Генерики позволяют ленивому программеру при открытии файла просто указать доступ вроде GENERIC_READ, и система, пропустив эту константу через специальную структуру GENERIC_MAPPING, приведёт это всё у виду Specific, и успешно отработает.

Расклад Specific Rights для объекта типа "файл" там же -- в winnt.h

//
// Define access rights to files and directories
//

//
// The FILE_READ_DATA and FILE_WRITE_DATA constants are also defined in
// devioctl.h as FILE_READ_ACCESS and FILE_WRITE_ACCESS. The values for these
// constantsMUSTalways be in sync.
// The values are redefined in devioctl.h because they must be available to
// both DOS and NT.
//

#define FILE_READ_DATA            ( 0x0001 )    // file & pipe
#define FILE_LIST_DIRECTORY       ( 0x0001 )    // directory

#define FILE_WRITE_DATA           ( 0x0002 )    // file & pipe
#define FILE_ADD_FILE             ( 0x0002 )    // directory

#define FILE_APPEND_DATA          ( 0x0004 )    // file
#define FILE_ADD_SUBDIRECTORY     ( 0x0004 )    // directory
#define FILE_CREATE_PIPE_INSTANCE ( 0x0004 )    // named pipe


#define FILE_READ_EA              ( 0x0008 )    // file & directory

#define FILE_WRITE_EA             ( 0x0010 )    // file & directory

#define FILE_EXECUTE              ( 0x0020 )    // file
#define FILE_TRAVERSE             ( 0x0020 )    // directory

#define FILE_DELETE_CHILD         ( 0x0040 )    // directory

#define FILE_READ_ATTRIBUTES      ( 0x0080 )    // all

#define FILE_WRITE_ATTRIBUTES     ( 0x0100 )    // all

#define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF)

#define FILE_GENERIC_READ         (STANDARD_RIGHTS_READ     |\
                                   FILE_READ_DATA           |\
                                   FILE_READ_ATTRIBUTES     |\
                                   FILE_READ_EA             |\
                                   SYNCHRONIZE)


#define FILE_GENERIC_WRITE        (STANDARD_RIGHTS_WRITE    |\
                                   FILE_WRITE_DATA          |\
                                   FILE_WRITE_ATTRIBUTES    |\
                                   FILE_WRITE_EA            |\
                                   FILE_APPEND_DATA         |\
                                   SYNCHRONIZE)


#define FILE_GENERIC_EXECUTE      (STANDARD_RIGHTS_EXECUTE  |\
                                   FILE_READ_ATTRIBUTES     |\
                                   FILE_EXECUTE             |\
                                   SYNCHRONIZE)

---
[C++] Если я правильно понял, то имеются в виду права которые нарисованы во вкладке безопасность 20.06.05 14:19  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
Там как раз 6 стандартных прав (магическое число, указанное в корневом посте) и галка для specific rights которая включается, если есть хоть одно из них

А вообще, надо предложить выкладывать фотографию своего компьютера и/или программы - будем лечить.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach