
Я хотел бы иметь возможность разрешить команде разработчиков устанавливать службы на сервере Win2003. Они уже могут подключаться через RDP/FTP с ограниченными учетными записями, но я хотел бы иметь возможность предоставлять привилегии на установку.
Как это сделать, не предоставляя права администратора?
(Службы созданы с использованием .NET Framework, поэтому мы устанавливаем с помощью C:\Windows\Microsoft.NET\Framework\v2.0.50727\installutil.exe)
решение1
Делегированное разрешение на установку служб будет немного сложным. Существует право "SC_MANAGER_CREATE_SERVICE", которое может быть предоставлено пользователям на объекте диспетчера управления службами (SCM) в глобальном диспетчере объектов.
В версиях Windows до Windows Server 2003 права нельзя было изменить на SCM. Начиная с W2K3 SP1, можно было изменить права на SCM.
API для изменения безопасности:SetServiceObjectSecurity, и более подробную информацию можно найти здесь:http://msdn.microsoft.com/en-us/library/aa379589(VS.85).aspx
Еще несколько ссылок относительно прав, которые могут быть предоставлены SCM, и DACL, установленного по умолчанию для SCM, доступны здесь:http://msdn.microsoft.com/en-us/library/ms685981(VS.85).aspx
Короче говоря, нет способа сделать это без написания кода. Нет никаких волшебных настроек реестра и т. д. Но если вы можете заставить кого-то написать код для вас, это вполне осуществимо.
решение2
Я думаю, что более серьезная проблема — позволить команде разработчиков получить доступ к серверу, который они не администрируют. Вместо того, чтобы пытаться предоставить права пользователям (SC_MANAGER_CREATE_SERVICE), хорошенько подумайте о том, чтобы дать им их собственную коробку — даже просто виртуальную машину для тестирования, как только они скажут, что все готово, настоящий администратор должен установить службы в производственную систему.
решение3
http://support.microsoft.com/?kbid=288129содержит некоторую информацию об управлении службами, но я не думаю, что ее можно расширить, включив в нее создание произвольных служб без серьезных изменений безопасности на вашем сервере.
Если вы создаете службу или службы, а затем предоставляете доступ, как описано в базе знаний, ваши разработчики могут остановить службу и скопировать новые двоичные файлы, чтобы они могли разрабатывать/отлаживать службы, даже если вам изначально пришлось их создать.
Лично я ограничиваю наших разработчиков тестовым сервером и даю им права администратора. Маленькие милашки не получают доступ к моим живым серверам, пока не убедят меня, что их вещи работают!
Дж.Р.