Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Запуск программы как сервис NT 5.x c правами пользователя

Автор: lunohod1
Дата сообщения: 01.03.2008 20:51
Есть задача стартовать в системе несколько приложений которые НЕ написаны как сервисы (такие программы не отвечают на запрос и система пишет что "не ответила на запрос вовремя" - поэтому ...) сервисом но с урезанными правами.
Ситуация. Загружается комп, стартует клиент торрента, мул, простейший вэб, фтп, mirc, асю. Не хочется чтобы такие программы получали доступ не то чтобы к local service но и к текущему пользовательскому логину. Соответственно автозапуск не прокатит.
Не прокатывают instsrv (программа не отвечает в назначенное время), apptoservice и им подобные - как я понимаю они должны изначально получать local service привилегии и затем естественно с ними же запускают.
Как быть?
Автор: RoDeZiya
Дата сообщения: 01.03.2008 21:01
lunohod1
Стандартным планировщиком пользоваться пробовали? Назначать запуск определенного приложения на включение компьютера и задавать запуск задачи от имени нужного пользователя.
Автор: lunohod1
Дата сообщения: 01.03.2008 21:30
О, да. Хорошая idea!
Оно точно запустится до залогинивания?
Автор: RoDeZiya
Дата сообщения: 01.03.2008 22:48
lunohod1

Цитата:
Оно точно запустится до залогинивания?

Точно. По-умолчанию будет запускаться от имени пользователя без необходимости логона. Можно настроить и на другое поведение.
Автор: lunohod1
Дата сообщения: 02.03.2008 10:17
Да, всё работает, но такой косяк: окно приложения не видно ни на рабочем столе ни в трее. Как бы его вытащить наружу... И почему оно вообще так себя ведет?
Автор: 01MDM
Дата сообщения: 02.03.2008 15:28
lunohod1
Окна не видно, потому что программа запущена с учетной записью System.

Если запускаешь через at используй ключ /interactive.

Код:
at 23:59 /interactive program.exe
Автор: RoDeZiya
Дата сообщения: 02.03.2008 19:14
01MDM

Цитата:
Окна не видно, потому что программа запущена с учетной записью System.

Не совсем корректное высказывание. Планировщик хоть и работает под учетной записью System, но программы запускает от имени указанного пользователя. Согласитесь, немного разные вещи.
Автор: 01MDM
Дата сообщения: 02.03.2008 19:54
RoDeZiya
Тут получается замкнутый круг. Программа запущена от имени пользователя (попробовал с аудио-плеером), но в тоже время она запущена svchost.exe, которая системная. И выходит что плеер является потомком системы..



Автор: RoDeZiya
Дата сообщения: 02.03.2008 20:34
01MDM
Task Sсheduler (Планировщик задач) физически - это файл SVCHOST.EXE и вроде кажется, что раз файл выполнен им, то он по наследованию является потомком SYSTEM. Но задачи он запускает при помощи вторичного входа в систему от имени указанного пользователя. И поэтому процессы запущенные планировщиком детьми SYSTEM не являются.

Вопрос-то принципиальный, в плане безопасности. Если-бы щедулер выполнял задания от собственного имени (системы), то тогда-бы запущенные приложения по наследованию имели полные права на всю систему. А так, они имеют права тех пользователей от имени которого запущены. Значительно безопаснее.
Автор: lunohod1
Дата сообщения: 02.03.2008 20:56
Таки шо делать будем? Не получается ни прямо ни косвенно - через ярлык, батник, start..
Конечно хороишй способ робко вирус прятать Но нужно как раз наоборот...смело показать!
Автор: RoDeZiya
Дата сообщения: 02.03.2008 20:59
lunohod1
А Вы чего хотите добится? Чтобы у Вас программа запускалась до входа пользователя в систему и работала, а после логона еще и пользователю показывалась? Это будет сложновато сделать... Что-за программа-то такая?
Автор: lunohod1
Дата сообщения: 02.03.2008 21:32
Программы для начала мул мюторрент DC++ - понятно почему они должны быть видны. Дальше бот на базе mirc (не спрашивайте почему - так надо ftp http серверы - должны быть видны для подстройки и управления в процессе работы.
Принципиально, все названые программы (КРОМЕ mirc, он частенько падает и физической и сетевой доступ для поднятия или невозможны или затруднены) можно было бы и при залогинивании запускать.
В юнихе есть бит SUID по моему, так вот при запуске процесса рутом при загрузке по этому биту устанавливается владелец процесса. То есть запустился то он рутом но выполняется уже пользователем... Идея не нова... но как бы её реализовать средствами системы?
Автор: RoDeZiya
Дата сообщения: 03.03.2008 06:43
lunohod1
Если дело обстоит так, тогда проще будет выполнять приложения при помощи автологона. Мне схема рисуется так:
1. При помощи маа-а-аленькой утилиты AdmiLink http://admilink.narod.ru/ делаем ярлыки, которые будут автоматически запускать приложения от имени заданного пользователя.
2. Кидаем ярлыки в автозагрузку.
3. Настраиваем автологон пользователя.
4. Можно еще сделать скрипт, который будет залочивать рабочий стол после автологона.
Автор: lunohod1
Дата сообщения: 03.03.2008 09:31
Ну хорошо... допустим эти можно булет и так запускать, не принципиально. В любом случае - спасибо
Будем ждать мыслей по поводу запуска программ без логона..

Admilink

Цитата:
Обнаружено, что при помещении ярлыка в Автозагрузку он не всегда срабатывает. Дело в том, что для запуска программ под другим пользователем надо чтобы была запущена служба "Вторичный вход в систему", а она запускается не сразу, а с некоторой задержкой. Чтобы устранить проблему, в параметры AdmiRun добавлена задержка при старте программы. Задержка подбирается так, чтобы Автозагрузка успевала запустить службу "Вторичный вход в систему", а только потом запускался ярлык.

А каким же тогда образом шедулер запускает от другого юзера приложение ещё до логона? Или таки успевает запуститься вторичный вход в систему до того как таймаут наступит?
Автор: KinoMakoto
Дата сообщения: 08.04.2008 20:38
RoDeZiya Можно еще сделать скрипт, который будет залочивать рабочий стол после автологона.

Хитрого скрипта, на самом деле, не нужно: ставим в автозагрузку rundll32.exe с параметрами "user32.dll,LockWorkStation" - и всё.

Страницы: 1

Предыдущая тема: Windows Server 2003 и Visual Studio 2005


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.