Запуск сценария cgi perl от имени администратора - PullRequest
0 голосов
/ 11 ноября 2011

Я пишу Perl-скрипт для веб-сайта, и мне нужно иметь возможность контролировать VirtualBox через веб-сайт.Я не уверен, с чего начать, или если я даже пытаюсь отладить в нужной области, но здесь идет.

Мой сервер работает под управлением IIS7 в Windows Server 2008 R2.Я также запускаю 2 виртуальные машины через интерфейс командной строки vboxmanage.Эти виртуальные машины работают под именем SERVER \ administrator.

Когда я открываю свой веб-сайт, он запрашивает логин.Я захожу на сайт под именем SERVER \ administrator и щелкаю ссылку, которая вызывает мой скрипт, используя xmlhttprequest.Теперь, как правило, не имеет значения, от какого пользователя я их запускаю, но с vboxmanage, если я запускаю команду от имени другого пользователя, список виртуальных машин будет другим.Я попытался whoami, который возвратил SERVER\administrator, но %DOMAINNAME%\%USERNAME% возвращает домен, к которому подключен сервер, в качестве имени домена и SERVER$ в качестве имени пользователя.В этом случае команда vboxmanage завершается неудачей.

На веб-сайте включена олицетворение.Когда я выключаю олицетворение, запрос whoami меняется на iis apppool\website.Любые идеи о том, как обойти это?

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

1 Ответ

0 голосов
/ 12 ноября 2011

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

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

Первый должен связаться со вторым через .

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