В * nix администраторы могут использовать флаг setuid, чтобы разрешить неадминистраторам запускать определенные программы, которые в противном случае потребовали бы прав администратора. Есть ли способ сделать что-то подобное в Windows 7?
Этот вопрос был задан здесь перед для Windows XP, и ответы в целом были неудовлетворительными. Мне интересно, предоставляет ли Windows 7 лучший способ.
Одна идея, которую я могу придумать, - это использовать подсистему Microsoft для приложений UNIX, но я бы предпочел не устанавливать ее в системе каждого пользователя, если я могу этого избежать.
Еще одна идея, которую я могу придумать (которая будет работать и на XP, но я не видел, чтобы она нигде упоминалась), - это создание приложения RunAsAdmin, которое работает как служба, который принимает белый список «безопасных» приложений и может быть запрошен (из командной строки, пакетного файла или сценария) для запуска любой программы из списка как LocalSystem или любой другой учетной записи, которую использует служба. Это возможно?
Есть ли решения, которые не такие неуклюжие, как эти? Или кто-нибудь успешно реализовал любой из вышеперечисленных методов?
Возможно, будет полезно изучить Зачем программе нужны привилегии администратора. Если дело доходит до таких вещей, как права доступа к файлам или реестру, то вы можете заставить программу работать под неадминистративными учетными данными, настроив разрешения, чтобы предоставить пользователю доступ.
Вопрос не должен заключаться в том, «как мне предоставить права администратора», вопрос должен заключаться в том, как получить правильные привилегии для пользователя для запуска приложения. В Windows «права администратора» относятся к набору прав, которые админ получает по умолчанию. Очень мало приложений, которым требуются все эти привилегии. Вы должны проверить использование привилегий приложений и соответствующим образом настроить права пользователей (желательно, создав группу и назначив права этой группе). Эта концепция известна как Принцип наименьших привилегий
http://www.technize.com/how-to-always-run-programs-as-administrator-in-windows-7/
Если вы хотите предоставить права администратора программы для всех пользователей, вы можете сделать это, снова перейдя на вкладку «Совместимость» и нажав «Изменить настройки для всех пользователей».
Установите флажок Запустить эту программу от имени администратора.
Теперь программа будет работать в административном режиме для всех пользователей системы.
Загляните в RunAsGui. Это позволяет вам хранить зашифрованные учетные данные администратора для данной программы, которую вы хотите разрешить своим пользователям использовать. Это бесплатно.