Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » А можно для уже запущенного процесса сменить user-a ?

Ответить
Настройки темы
А можно для уже запущенного процесса сменить user-a ?

Новый участник


Сообщения: 41
Благодарности: 0

Профиль | Отправить PM | Цитировать


сабж !

-------
типо человек


Отправлено: 09:19, 27-09-2002

 

Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


можно, искать на msdn.microsoft.com по слову Impersonate.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 11:22, 27-09-2002 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 41
Благодарности: 0

Профиль | Отправить PM | Цитировать


vasketsov

Чего-то я не нашел
А можно по-точнее плз ?

-------
типо человек


Отправлено: 09:30, 23-10-2002 | #3


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


Хорошо, мне известно как минимум 2 способа (оба удачно опробованы).

1) пользоваться Impersonate-ом (смотри сразу функцию RevertToSelf, там в ней написано, для каких функций ее можно вызывать, и какие требуются права, там по-моему что-то типа TCB должно требоваться, это работа в режиме операционной системы или как-то так переводится).

2) самому руками поправить Token у процесса или только одного потока, потом вернуть его обратно. Вполне работоспособный вариант и все можно сделать очень гибко, однако нужны кое-какие права, но если программа заведомо будет запускаться под системной учетной записью или админской (точнее, по умолчанию права, необходимые для работы такой программы, есть только у группы локальных администраторов, а уж кому их дать кроме этого - смотри сам, в общем случае это права отладки и создания маркера aka Token-а) - можем продолжить эту мысль.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 11:52, 23-10-2002 | #4


Новый участник


Сообщения: 41
Благодарности: 0

Профиль | Отправить PM | Цитировать


Хмм...

Второй способ не подойдет, хочу сделать убивалку процессов для простых пользователей. Да и геморойно это наверно - не винда а сплошная бюрократия, побегаешь с заполнением структур

А вот impersonate интересно... Как я понял в общем случае выглядит как LogonUser затем InpersonateLoggedOnUser и в конце работы RevertToSelf ? Правда я ещё не смотрел, будут ли проблемы при выполнении этого под ограниченным пользователем.

-------
типо человек


Отправлено: 12:43, 23-10-2002 | #5


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


ukms
Проблемы для обычных юзеров будут, хотя так это и выглядит как ты написал (именно поэтому в 2000-й и сделан специальный сервис для этого).

Для убийства любых процессов по идее достаточно SeDebugPrivilege, только вот давать юзерам такую привилегию не советую.

Можешь попытаться написать свою DLL и вписать ее в специальный раздел реестра, откуда она будет грузиться во все процессы (на самом деле почти во все), в том числе и в WinLogon (и будет под системной учетной записю работать со всеми правами), а WinLogon юзер перезапустить или снять не сможет без последствий (в SMSS есть поток, который ждет на этом процессе, потому сразу после неожиданного снятия WinLogon-а SMSS покажет белые буковки на синем фоне, но в принципе и WinLogon и Csrss и Smss можно с правами снять, и система будет даже работать, но это дикий изврат и чтоб не забивать голову, не буду об этом писать).

Итак, выбирай
1) даешь юзеру право работы как система и еще какие там ему нужны для имперсонейта.
2) даешь право отладки, что позволяет ему запускать процессы от имени системной учетной записи.
3) не даешь юзеру прав, но разделяешь программу на 2 части, одна из них работает под системной учетной записью, а вторая говорит первой чего надо прибить (тип связи любой какой хочешь из всего множества IPC), первую можно делать и как службу; и внедрять адресно (DLL) в любой из системных процессов при логоне юзера; и писать в ключ, откуда библиотеки форсированно грузятся во все процессы (но работает или нет это на NT4 я не знаю); и как Winlogon Notification Package; и еще куча способов.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 13:16, 23-10-2002 | #6


Новый участник


Сообщения: 41
Благодарности: 0

Профиль | Отправить PM | Цитировать


Мда... Ни фига себе как муторно

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

-------
типо человек


Отправлено: 13:51, 23-10-2002 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » А можно для уже запущенного процесса сменить user-a ?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Помогите с написанием bat файла для проверки запущенного процесса. Stranger404 Скриптовые языки администрирования Windows 17 17-08-2020 22:50
Проверка запущенного процесса Anarasius AutoIt 2 25-06-2014 11:39
.NET - Получение PID процесса, запущенного из программы Delirium Программирование и базы данных 2 07-12-2009 02:17
Можно ли сменить процесор на HP Pavilon 6129en? MIXAA Ноутбуки 3 13-04-2008 18:55
Java - Отслеживание состояния запущенного процесса EvgeniyQQQ Программирование и базы данных 15 02-10-2007 13:20




 
Переход