Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];

Вниз

SID Well-known группы   Найти похожие ветки 

 
Pearled ©   (2005-07-04 14:22) [0]

Пытаюсь установить права доступа к папке. С отдельными пользователями разобрался. А вот как определить доступ для стандартной группы пользователей ? Функция CreateWellKnownSID() есть только в Windows 2003 Server. Может кто-нибудь знает как получить такой SID в Windows 2000  Server?


 
Игорь Шевченко ©   (2005-07-04 14:34) [1]


> А вот как определить доступ для стандартной группы пользователей
> ?


// NT well-known SIDs                                                        //
//                                                                           //
//     NT Authority            S-1-5                                         //
//     Dialup                  S-1-5-1                                       //
//                                                                           //
//     Network                 S-1-5-2                                       //
//     Batch                   S-1-5-3                                       //
//     Interactive             S-1-5-4                                       //
//     (Logon IDs)             S-1-5-5-X-Y                                   //
//     Service                 S-1-5-6                                       //
//     AnonymousLogon          S-1-5-7       (aka null logon session)        //
//     Proxy                   S-1-5-8                                       //
//     Enterprise DC (EDC)     S-1-5-9       (aka domain controller account) //
//     Self                    S-1-5-10      (self RID)                      //
//     Authenticated User      S-1-5-11      (Authenticated user somewhere)  //
//     Restricted Code         S-1-5-12      (Running restricted code)       //
//     Terminal Server         S-1-5-13      (Running on Terminal Server)    //
//     Remote Logon            S-1-5-14      (Remote Interactive Logon)      //
//     This Organization       S-1-5-15                                      //
//                                                                           //
//     Local System            S-1-5-18                                      //
//     Local Service           S-1-5-19                                      //
//     Network Service         S-1-5-20                                      //
//                                                                           //
//     (NT non-unique IDs)     S-1-5-0x15-... (NT Domain Sids)               //
//                                                                           //
//     (Built-in domain)       S-1-5-0x20                                    //
//                                                                           //
//     (Security Package IDs)  S-1-5-0x40                                    //
//     NTLM Authentication     S-1-5-0x40-10                                 //
//     SChannel Authentication S-1-5-0x40-14                                 //
//     Digest Authentication   S-1-5-0x40-21                                 //
//                                                                           //
//     Other Organization      S-1-5-1000    (>=1000 can not be filtered)    //


 
Pearled ©   (2005-07-05 11:25) [2]

Спасибо!
DACL создается по-моему правильно, но теперь не могу его установить.. CreateDirectory создает каталог с правами по умолчанию, независимо от указанных в параметрах SECURITY_ATTRIBUTES. Может быть из-за того, что права наследуются от родительского каталога? Но как тогда программно убрать эту галочку?


 
Игорь Шевченко ©   (2005-07-05 11:38) [3]

Pearled ©   (05.07.05 11:25) [2]

SetFileSecurity не поможет ?


 
Pearled ©   (2005-07-05 11:54) [4]

// SetFileSecurity не поможет ?
Я сначала использовал SetnamedSecurityInfo() (в MSDN рекомендуется ее использовать вместо вышеуказанной). Но если у каталога был установлен флаг "Переносить наследуемые разрешения", то функция только добавляла новые ACEы, но не могла удалить существующие. А мне нужно оставить доступ только для одного пользователя..


 
Игорь Шевченко ©   (2005-07-05 12:02) [5]


> А мне нужно оставить доступ только для одного пользователя..


Внести в начало разрешающий ACE для этого пользователя и за ним запрещающий ACE для всех не поможет ?


 
Игорь Шевченко ©   (2005-07-05 12:04) [6]

Кстати, вот такая вот любопытная фраза:

"For backward compatibility purposes, CreateDirectory does not apply Windows 2000 inheritance rules when you specify a security descriptor in lpSecurityAttributes. To support inheritance on current versions of Windows, functions that query the security descriptor of this object may heuristically determine and report that inheritance is in effect. See Automatic Propagation of Inheritable ACEs for more information."


 
Pearled ©   (2005-07-05 12:23) [7]

/Внести в начало разрешающий ACE для этого пользователя и за ним запрещающий ACE для всех не поможет ?/
Наверное поможет, так и сделаю..
Кстати в параметрах функции SetNamedSecurityInformation() можно указать флаг PROTECTED_DACL_SECURITY_INFORMATION, который должен защищать DACL от наследования. Но в Delphi такой константы нет, а метод перебора значений вручную ничего не дал (пробовал подставить 16, 32, 64, 128).


 
BiN ©   (2005-07-05 12:23) [8]

>Pearled ©

Во время создания DACL попробуй установить флаг SE_DACL_PROTECTED.


 
Игорь Шевченко ©   (2005-07-05 12:25) [9]


> PROTECTED_DACL_SECURITY_INFORMATION


#define PROTECTED_DACL_SECURITY_INFORMATION     (0x80000000L)
#define PROTECTED_SACL_SECURITY_INFORMATION     (0x40000000L)
#define UNPROTECTED_DACL_SECURITY_INFORMATION   (0x20000000L)
#define UNPROTECTED_SACL_SECURITY_INFORMATION   (0x10000000L)

Скачай себе наконец Platform SDK ! :))


 
BiN ©   (2005-07-05 12:26) [10]

Pearled ©   (05.07.05 12:23) [7]

Но в Delphi такой константы нет, а метод перебора значений вручную ничего не дал (пробовал подставить 16, 32, 64, 128).


Долго бы тебе пришлось перебирать -)

 PROTECTED_DACL_SECURITY_INFORMATION   = ($80000000);
 {$EXTERNALSYM PROTECTED_DACL_SECURITY_INFORMATION}
 PROTECTED_SACL_SECURITY_INFORMATION   = ($40000000);
 {$EXTERNALSYM PROTECTED_SACL_SECURITY_INFORMATION}
 UNPROTECTED_DACL_SECURITY_INFORMATION = ($20000000);
 {$EXTERNALSYM UNPROTECTED_DACL_SECURITY_INFORMATION}
 UNPROTECTED_SACL_SECURITY_INFORMATION = ($10000000);
 {$EXTERNALSYM UNPROTECTED_SACL_SECURITY_INFORMATION}


 
Pearled ©   (2005-07-05 13:21) [11]

Всем большое спасибо! С этим флагом все работает!



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.041 c
14-1122991707
Antonn
2005-08-02 18:08
2005.08.28
Как родился Вася Пупкин?


5-1094800564
DesWind
2004-09-10 11:16
2005.08.28
Изменение имен компонентов


1-1123329885
Толян
2005-08-06 16:04
2005.08.28
Копирование программы


14-1123147824
3DxFantastika
2005-08-04 13:30
2005.08.28
Как перевести дату в UNIX-время (формат)


4-1120582829
q1w2e3
2005-07-05 21:00
2005.08.28
Фильтр ввода на API





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский