делиться привилегиями администратора процесса с помощью токенов доступа - PullRequest
1 голос
/ 06 марта 2012

у меня 2 процесса. Один из них работает под учетной записью администратора, второй - под учетной записью пользователя без прав доступа к процессам администратора. Они должны видеть друг друга и сравнивать пути, откуда эти процессы выполняются. Но первый (пользовательский) процесс не может получить путь ко второму процессу. Получение пути с использованием CreateToolhelp32Snapshot -> OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION) -> QueryFullProcessImageName не применимо, поскольку оно работает в Vista, Win7 и выше, и мне нужно решение для более низких версий Win .

Итак, как я могу дать разрешения для пользовательского процесса, чтобы увидеть путь процесса администратора, или как я могу поделиться привилегиями процесса администратора для пользователя с помощью токенов доступа или SetNamedSecurityInfo?

желательно с использованием delphi.

1 Ответ

1 голос
/ 07 марта 2012

Вы можете изменить это, да (*) - но вы действительно должны пересмотреть свою логику.Например, процесс администратора может открыть общую MMF с предопределенным именем и сохранить любую необходимую информацию.Вы можете поделиться этой MMF с любым пользователем или группой, которую хотите (вы должны рассмотреть возможность предоставления доступа только для чтения).Это гораздо безопаснее, чем открывать весь процесс для внешнего мира.

(*) В процессе администрирования: OpenProcess, получить токен и дескриптор безопасности, изменить DACL, добавив новое право для нужной учетной записи пользователя или группы, установить токен /SD обратно.

...