![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передать токен
Чапаев © (2006-11-21 19:31:00)Есть служба, запускаемая под учётной записью LocalSystem, есть программа, которую запускает служба от имени залогиненного пользователя. На определённых этапах программе нужно работать с правами LocalSystem. Как это организовать?
Я пытался получать токен службы через OpenProcessToken(), затем запускать процесс с InheritHandle=True и передавать ему токен. При попытке манипуляций с этим токеном получаю ошибку invalid handle.
Eraser (2006-11-21 22:48:00) [1]> [14] Rouse_ © (21.11.06 22:39)
ну эт хорошо если все таки не будут ужесточать политику в этом плане, иначе многие полезные продукты загнутся.
Чапаев (2006-11-21 22:47:00) [2]> [13] BiN © (21.11.06 22:39)
Подумаю, но вряд ли так сделаю...
BiN (2006-11-21 22:39:00) [3]
> Чапаев © (21.11.06 22:34) [11]
>
> Что ты имеешь в виду?
Пусть служба и читает по запросу клиента. Только аутентификацию самому придется делать...
Rouse_ (2006-11-21 22:39:00) [4]
> только виста, в этом случае, покажет кукиш а потом еще и
> обматерит :))
> а, на сколько мне известно, Чапаеву нужно чтобы была совместимость
> с этой ОС.
Да нет... проверял на пришедшей по подписке бете, не материла... Хотя фиг его знает, нам в основном Developer release идет, а там очень много поблажек...
Чапаев (2006-11-21 22:35:00) [5]> а, на сколько мне известно, Чапаеву нужно чтобы была совместимость
> с этой ОС.
Не. Тут уже и так несовместимостей полно. Ещё одна не внесёт радикальных изменений в общую несовместимость... :о)
Чапаев (2006-11-21 22:34:00) [6]> Службу pipe-сервером сделать никак нельзя?
Что ты имеешь в виду?
В принципе, приложение со службой через пайп взаимодействует.
Eraser (2006-11-21 22:33:00) [7]> [9] Rouse_ © (21.11.06 22:29)
> А доступ к файлу лучше решать на уровне драйвера файловой
> системы, хотя можно и проще, по аналогии с FOO.SYS спрятать
> его правкой таблиц...
только виста, в этом случае, покажет кукиш а потом еще и обматерит :))
а, на сколько мне известно, Чапаеву нужно чтобы была совместимость с этой ОС.
> Службу pipe-сервером сделать никак нельзя?
вот это самое оно, тем более что заодно можно получать различную информацию из аккаунта юзера.
BiN (2006-11-21 22:29:00) [8]
> Чапаев © (21.11.06 22:21) [5]
>
> Ась?
>
> В общем, есть файл, доступ к которому разрешён только SYSTEM
> (ради безопасности, как мне казалось до твоих слов ;-) ),
> надо его читать из приложения.
>
> Очень глупо?
Глупо, не глупо, но бэкдор.
Службу pipe-сервером сделать никак нельзя?
Rouse_ (2006-11-21 22:29:00) [9]
> так любой админ может добавить себя в DACL файла и тоже
> сможет читать
не любой :) Локальный админ в доменной сети не обладает явной прерогативой... А доступ к файлу лучше решать на уровне драйвера файловой системы, хотя можно и проще, по аналогии с FOO.SYS спрятать его правкой таблиц...
Чапаев (2006-11-21 22:27:00) [10]> [6] Eraser © (21.11.06 22:23)
Это я знаю... Админ всё может поломать, если такой целью задастся.
Пускай шарит, если хочет. Но пусть понимает, что его предупредили, что в том файле ему делать нечего... :-)
Eraser (2006-11-21 22:23:00) [11]> [5] Чапаев © (21.11.06 22:21)
так любой админ может добавить себя в DACL файла и тоже сможет читать )
Чапаев (2006-11-21 22:21:00) [12]> [4] BiN © (21.11.06 22:16)
Ась?
В общем, есть файл, доступ к которому разрешён только SYSTEM (ради безопасности, как мне казалось до твоих слов ;-) ), надо его читать из приложения.
Очень глупо?
BiN (2006-11-21 22:16:00) [13]Зачем локальный бэкдор создаешь?
Чапаев (2006-11-21 22:05:00) [14]> [2] Rouse_ © (21.11.06 21:59)
Да. Но с fast user switching это даёт ну очень весёлые результаты.
Rouse_ (2006-11-21 21:59:00) [15]Не понял, а если запускать программу не от "имени текущего пользователя" а просто запускать? Она собственно с привилегиями службы и стартанет...
Чапаев (2006-11-21 21:23:00) [16]Ух... ПОЛУЧИЛОСЬ!
В общем, в службе надо DuplicateHandle() над токеном произвести, а уже этот дубль передавать потомку...