запуск программы, которая имеет больше привилегий пользователя с ограниченными правами - PullRequest
0 голосов
/ 03 декабря 2009

У меня есть пользователи с ограниченным доступом к одному из моих жестких дисков. Этим пользователям не разрешено удалять файлы с этого диска. но у меня есть приложение, которое позволяет этим пользователям удалять файлы на вышеупомянутом диске.

1) Как я могу это сделать?

2) Когда пользователь с низким уровнем привилегий вошел в мое приложение, могу ли я написать скрытый поток / программу, которая дает права высокого привилегированного пользователя (только для этого приложения), как при олицетворении другого пользователя, чтобы он мог быть удалить файлы с помощью этого приложения на жестком диске с ограниченным доступом?

Спасибо

Ответы [ 2 ]

0 голосов
/ 03 декабря 2009

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

0 голосов
/ 03 декабря 2009

В зависимости от вашей ОС вы можете делать разные вещи.

В среде, подобной UNIX, вы можете написать программу и использовать setuid или setguid, чтобы она работала с привилегиями другого (более привилегированного) пользователя.

В качестве альтернативы в Windows или UNIX вы можете запустить службу как привилегированный пользователь и позволить ей принимать запросы от других пользователей / процессов для выполнения операции от их имени. Вам нужно найти способы общения с сервисом.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...