![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Security Descriptor [Win2k]
com © (2004-04-24 14:40:00)Извинияйте люди, что на C++, Api функции везде-то одинаковые. Надеюсь народ поймёт этот код.
Мне надо открыть/закрыть доступ пользователю к папке.
Проблема в том, что пользователь добавляется в свойствах папки, а его права не устанавливаются.
Хоть этот пример и взят из MSDN, но он не работает.
Помогите разобраться.
PACL pACL;
PSECURITY_DESCRIPTOR pSD;
EXPLICIT_ACCESS ea;
ea.grfAccessPermissions = STANDARD_RIGHTS_ALL;
ea.grfAccessMode = SET_ACCESS;
ea.grfInheritance= NO_INHERITANCE;
ea.Trustee.TrusteeForm = TRUSTEE_IS_NAME;
ea.Trustee.TrusteeType = TRUSTEE_IS_USER;
ea.Trustee.ptstrName = (LPTSTR) "user";
SetEntriesInAcl(1, &ea, NULL, &pACL);
pSD = (PSECURITY_DESCRIPTOR) LocalAlloc(LPTR,
SECURITY_DESCRIPTOR_MIN_LENGTH);
InitializeSecurityDescriptor(pSD, SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(pSD,TRUE,pACL, FALSE);
SetFileSecurity("C:\\folder",DACL_SECURITY_INFORMATION,pSD);
com (2004-04-29 10:16:00) [1]>>VMcL © (28.04.04 11:12) [6]
>>А ты как сам думаешь, может, к примеру, "гость" или "юзер" >>поменять права на папку "%systemroot%\system32"?
Исчерпывающий ответ, спасибо за такую колоссальную помощь. Даже не знаю чтоб я без тебя(VMcL) делал!
Но я уже и сам разобрался.
VMcL (2004-04-28 11:12:00) [2]>>com (27.04.04 10:29) [3]
>Может надо самому иметь соответствующие права на папку?
А ты как сам думаешь, может, к примеру, "гость" или "юзер" поменять права на папку "%systemroot%\system32"?
com (2004-04-28 09:10:00) [3]Там написано:
Windows NT, Windows Me/98/95: Directory service objects are not supported.
Выходит в Win2000 всё должно работать нормально. Новедь гдето же глюк есть!
Игорь Шевченко (2004-04-27 10:41:00) [4]А что написано в MSDN про условия выполнения примера ?
com (2004-04-27 10:29:00) [5]Может надо самому иметь соответствующие права на папку? Так я же вроде под админом сижу и ошибок никаких не выдаёт.
com (2004-04-24 15:10:00) [6]Я их анализирую но для простоты кода я их не включил в сообщение.
...
dwRes = SetEntriesInAcl(1, &ea, NULL, &pACL);
if (dwRes!==ERROR_SUCCESS) ошибка;
...
Никаких ошибок не выдавало.
Polevi (2004-04-24 14:42:00) [7]твоя проблема в том что ты не анализируешь результаты вызова API ф-ий