Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение настроек безопасности реестра 
:(
    Опции темы
Delvish
Дата 30.11.2012, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


oO
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 13.12.2006

Репутация: 2
Всего: 4



пробовал компоненты JEDI (jwscl) - но их отчего-то клинит - если пользователя нет в списке, он добавляется с правами "разрешить". если потом дать права "запретить" - изменяется. а обратно с "запретить" на "разрешить" - ни в какую.
пробовал компоненты NtSet - Отказ в доступе.
пробовал по способу Cheba http://forum.vingrad.ru/forum/topic-18464/...nfo/index.html# - тоже не хочет работать.

просьба: помогите дельным советом/кодом для изменения DACL. замучался уже  smile очень уж надобно мне пару веток реестра умееть наделять правами и запрещать доступ.
PM MAIL   Вверх
kami
Дата 30.11.2012, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 15
Всего: 72



Цитата(Delvish @  30.11.2012,  12:21 Найти цитируемый пост)
если потом дать права "запретить" - изменяется. а обратно с "запретить" на "разрешить" - ни в какую.

Возможно, глупый вопрос - разрешить/запретить выставляется для текущего пользователя?
PM MAIL WWW   Вверх
Delvish
Дата 30.11.2012, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


oO
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 13.12.2006

Репутация: 2
Всего: 4



а уже по-всякому пробовал - и для текущего, и для группы "Все", и для "Пользователи". единственные подвижки только с JEDI-компонентами - они как-то хитро умеют преодолевать безопасность (по крайней мере, для тестовой ветки HKEY_CURRENT_USER\123) и добавлять пользователя в ACL, а так же, как я уже выше упомянул, изменять Allow на Deny, но не обратно. все остальные способы во всяких интерпритациях ругались на отказ в доступе и т.п.
P.S. привилегию SeTakeOwnershipPrivilege на всякий случай получал
PM MAIL   Вверх
kami
Дата 30.11.2012, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 15
Всего: 72



На счет "пользователи" не скажу (хз, где они там в иерархии), а вот "для текущего" и "для всех" действительно можно будет только запретить, т.к. что ж это будет за безопасность, если пользователь, которому запрещено что-то, сможет сам себе разрешить это "что-то".
PM MAIL WWW   Вверх
Delvish
Дата 30.11.2012, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


oO
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 13.12.2006

Репутация: 2
Всего: 4



ну по логике я с админскими правами могу управлять учетками пользователей и групп, находящихся по иерархии ниже меня. и ведь если, к примеру, Гость отсутствует в списке доступа, а я его добавляю с правами Allow на все - он же добавляется. только вот с Deny на Allow не желает возвращаться. я попробовал было удалять пользователя всякий раз как вношу изменения - но у меня ошибку выдает, так и не понял чего оно от меня хочет. это относительно JEDI.
еще вот кусок кода замучал - у меня получается изменять только вид доступа "Особые разрешения". что запрет, что одобрение - только на этот пункт идет. для любого пользователя и любой группы. тоже не могу понять отчего так. может, кто что дельное подскажет?

Код

  pEA := AllocMem(SizeOf(EXPLICIT_ACCESS_A));
  BuildExplicitAccessWithName(pEA, 'Все', GENERIC_ALL, GRANT_ACCESS, NO_INHERITANCE);
if SetEntriesInAcl(1, pEA, nil, pDACL) <> ERROR_SUCCESS then
  ShowMessage(SysErrorMessage(GetLasterror)) else
  begin
    if SetNamedSecurityInfo('CURRENT_USER\123', SE_REGISTRY_KEY, DACL_SECURITY_INFORMATION,
       nil, nil, pDACL, nil) <> ERROR_SUCCESS then
           ShowMessage('SetNamedSecurityInfo failed: ' + SysErrorMessage(GetLastError));
    LocalFree(Cardinal(pDACL));
  end;


Это сообщение отредактировал(а) Delvish - 30.11.2012, 16:52
PM MAIL   Вверх
Delvish
Дата 2.12.2012, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


oO
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 13.12.2006

Репутация: 2
Всего: 4



в идеале, кстати сказать, мне нужно редактировать ветки HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB и HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR. по умолчанию доступ туда закрыт и админам, но я же могу ручками добавить себя в список разрешенных. вот и программно должен же быть какой-то способ. неужели никто не сталкивался?.. :(
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0721 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.