none
повышение прав без запроса пароля админа, для конкретного приложение RRS feed

  • Вопрос

  •  

    Итак:
    - есть определенное приложение;
    - оно может корректно работать только с админскими правами;
    - пользователь не может и не должен знать админский пароль;
    - пользоваться можно только инструментарием самой ОС, fomat c: пожалуйста не предлагайте =)
    Вопрос:
    - как пользователю корректно запустить это приложение?

    Уже перебрал:
    Пошаговое руководство по функции контроля учетных записей ОС Windows Vista
    причем тут прикол:
    Цитата:


    Изменение поведения запроса повышения прав
    Для изменения поведения запроса повышения прав функции UAC воспользуйтесь следующей процедурой.
    *  Примечание.
    Для выполнения приведенной ниже процедуры вы должны войти в систему клиентского компьютера в качестве локального администратора.
    Чтобы изменить поведение запроса повышения прав
       1. Нажмите Пуск, нажмите Стандартные, нажмите Выполнить..., введите secpol.msc в текстовое поле Открыть и затем нажмите ОК.
       2. В дереве консоли "Локальные параметры безопасности" нажмите Локальные политики и затем нажмите Параметры безопасности.
       3. Прокрутите список вниз и двойным щелчком кнопки мыши выберите настройку Контроль учетных записей: поведение запроса повышения прав для администраторов или Контроль учетных записей: поведение запроса повышения прав для обычных пользователей.
       4. В выпадающем меню выберите одну из следующих настроек:
              * Не запрашивать
              * Запрашивать учетные данные (эта настройка требует ввода имени и пароля, прежде чем приложение или задача будет запущена с повышенными правами и является настройкой по умолчанию для обычных пользователей)
              * Запрашивать согласие (эта настройка является настройкой по умолчанию только для администраторов)
       5. Нажмите ОК.
       6. Закройте окно Локальные параметры безопасности.


    Что в более свежей версии документации (Windows User Account Control Step-by-Step Guide) звучит как
    Цитата:


    To change the elevation prompt behavior for standard users
    1.Click Start, click Accessories, click Run, type secpol.msc in the Open box, and then click OK.
    2.From the Local Security Settings console tree, click Local Policies, and then Security Options.
    3.Scroll down to and double-click User Account Control: Behavior of the elevation prompt for standard users.
    4.From the drop-down menu, select one of the following settings:
    •Automatically deny elevation requests (standard users will not be able to run programs requiring elevation, and will not be prompted)
    •Prompt for credentials (this setting requires user name and password input before an application or task will run as elevated, and is the default for standard users)
    5.Click OK.
    6.Сlose the Local Security Settings window.


    Иначе говоря для обычного пользователя: либо знаешь пароль админа, либо - "Гуляй, Вася!"... 
    Как решить эту проблему?
    В том же Линухе, к примеру, есть sudo - там все просто....а здесь - вообще теряюсь....
    12 ноября 2007 г. 17:26

Ответы

  • Вообще-то насколько я знаю UAC тот же Run AS, только в графическом виде. Можно по-прбовать создать bat- или cmd-файл для запуска этого самого ехе-шника с использованием Run As от администратора, который был бы доступен для запуска, но не доступен для просмотра и редактирования. Таким образом вы решаете проблему т.к.

    1. Пользователь сможет запускать приложение как от администратора и даже не будет знать об этом.

    2. Пользователь не будет знать пароль администратора т.к. у него нет прав на просмотр и редактирование  bat- или cmd-файл.

    3. Вы избегаете проблем с UAC т.к. фактически используете его для запуска этого приложения, но только из пд командной строки.
    17 ноября 2007 г. 0:20

Все ответы

  • Тебе думаю поможет AdmiLink

    http://admilink.narod.ru/

    Даже сурфкад перед ней сдался

    пользователь видит на столе обычный ярлык и знать не знает про пароли, не обязательно запускать от локального администратора, можно доменные учётки использовать

    12 ноября 2007 г. 23:36
  • Спасибо, но не очень, если честно, верю этой софтине.

    А теперь главный вопрос: как решить эту задачу средствами самой ОС ??

    Ну не верится, что это не возможно......

    13 ноября 2007 г. 17:17
  • Есть несколько способов.

    I Запуск программы в режиме совместимости

    1. Найти сам исполняемый файл. Для этого надо на ярлыке кликнуть правой кнопкой мыши. Далее Свойства\open File Location.

    2. Далее по статье http://support.microsoft.com/kb/931362/ru

    Обычно этого достаточно, но бывают ситуации когда возникает необходимость установить эти параментры для дополнительных файлов. Вы это определите если приложение ругается на тот или иной файл.

    II использовать Program Compatibility Wizard 

    Как его запустить описанно здесь: http://support.microsoft.com/kb/555917/en-us

     

    14 ноября 2007 г. 0:11
  • SparF, Вам ответили правильно, но не поняли существо Вашего вопроса...

    Если отвечать именно на него, то ответ уже Вами писался:

     SparF написано:
    ...для обычного пользователя: либо знаешь пароль админа, либо - "Гуляй, Вася!"...

    Могу добавить: либо админ разрешит Вам запуск данного приложения по Вашей обоснованной просьбе.

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

    14 ноября 2007 г. 15:33
  • SparF,

     

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

     

    --

    Yakor

     

    14 ноября 2007 г. 16:06
  •  SparF написано:

    Спасибо, но не очень, если честно, верю этой софтине.

    А теперь главный вопрос: как решить эту задачу средствами самой ОС ??

    Ну не верится, что это не возможно......

     

    не совсем понятно что значит не верю?

    а если пользователя занести в группу опытных пользователей? может этого хватит?

    а так только раздавать права на конктретные пути, файлы и ветки реестра

    15 ноября 2007 г. 2:48
  •  stanisluv написано:

    Есть несколько способов.

    I Запуск программы в режиме совместимости

    II использовать Program Compatibility Wizard 

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

     stanisluv написано:

    1. Найти сам исполняемый файл. Для этого надо на ярлыке кликнуть правой кнопкой мыши. Далее Свойства\open

    Спасибо, знаю))))))))))))))))))

     TrigAn написано:

    Могу добавить: либо админ разрешит Вам запуск данного приложения по Вашей обоснованной просьбе.

    Ок, я - админ (может и малограмотный немного, но надеюсь наверстать...) Как мне разрешить запускать это приложение (и только это)? При этом чтобы не бегать постоянно к его машине (чтобы ввести пароль локального админа, которого он знать не должен), когда ему необходимо запустить это приложение.

     TrigAn написано:

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

    Весьма благодарен Вам за то, что напомнили часть лекции предмета "Операционные системы". Приведу другой, ставший уже классическим, пример:

     Иногда пользователю необходимо поменять свой пароль на вход в систему. Сам пользователь не имеет прав на доступ к базе данных паролей. Однако программа, которую он использует для смены пароля, запускается с повышенными правами. Что позволяет ему, в конечном итоге, сменить свой пароль.

    Так вот, мой случай - аналогичен. Как мне "сказать" системе, что программа должна запускаться с повышенными правами? При этом запускать ее будет юзер из группы "пользователь"/"опытный пользователь".

    На самом деле это можно сделать, если запускать программу как "назначенное задание" от имени другого пользователя. Все бы ничего - она даже запускается, однако графический интерфейс (окна программы) на рабочем столе пользователя не отображаются...

     Yakor написано:

    SparF,

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

    Концептуальное противоречие??? Выше привел пример - задача достаточно стандартна для любой ОС. Просто не хочется решать ее сторонними средствами (не входящими в поставку ОС Windows Vista). UAC уже отключал - в любом случае приложение корректно работает только с админскими правами, вот такое вот оно - специфическое.... Включать же данного пользователя в группу локальных "Администраторов" не видится возможным по соображениям безопасности.

    По поводу скрипта - для runas есть флаг, позволяющий запомнить пароль, однако в этому случае пользователь получит возможность запускать любую программу с админскими правами.

     zorion написано:

    не совсем понятно что значит не верю?

    а если пользователя занести в группу опытных пользователей? может этого хватит?

    а так только раздавать права на конктретные пути, файлы и ветки реестра

    Это означает, что я не хочу запускать софт, исходники которого никто не видел, о поставщике - ничего не известно, и сайт которого - лежит "на народе". Что же по поводу пользователей - ех, если бы этого хватило, то данное обсуждение на форуме бы не появилось ..... =(

     zorion написано:

    а так только раздавать права на конктретные пути, файлы и ветки реестра

    Хочется верить, что не все так плохо.
    15 ноября 2007 г. 17:35
  • Хорошо, а что, стандартная процедура, используя политику безопасности, не помогает?

     

    Под аккаунтом локального администратора на ярлыке -> свойства -> security -> group or user names->edit -> для пользователя XX  прописать full control (это будет распространяться ТОЛЬКО на конкретное приложение).

    Можно поиграть с изощренными настройками доступа в разделе "advanced".

     

    --

    Yakor

    16 ноября 2007 г. 4:24
  • В этом случае пользователь получил все права на данный ехе-шник...но только приложение ведь все равно запускается с правами этого пользователя, а это -  "Пользователь"/"Опытный пользователь" и не больше...

    16 ноября 2007 г. 10:10
  • Вообще-то насколько я знаю UAC тот же Run AS, только в графическом виде. Можно по-прбовать создать bat- или cmd-файл для запуска этого самого ехе-шника с использованием Run As от администратора, который был бы доступен для запуска, но не доступен для просмотра и редактирования. Таким образом вы решаете проблему т.к.

    1. Пользователь сможет запускать приложение как от администратора и даже не будет знать об этом.

    2. Пользователь не будет знать пароль администратора т.к. у него нет прав на просмотр и редактирование  bat- или cmd-файл.

    3. Вы избегаете проблем с UAC т.к. фактически используете его для запуска этого приложения, но только из пд командной строки.
    17 ноября 2007 г. 0:20
  • Таким образом проблему не решить. Работать не будет) Объясняю почему:

    - запуск любого скрипта происходит следующим образом:

    - система видит расширение .bat

    - запускает интерпретатор (в данном случае cmd.exe) с аргументом в виде имени этого файла

    - интерпретатор после запуска открывает батник (имя ему передали в агрументе) и начинает построчно выполнять команды в нем.

    - при этом понятно, что при отсутствии прав на чтение на втором шаге произойдет ошибка доступа. Так как  интерпретатор запускается с правами текущего пользователя.

     

    А теперь для тех, кто не верит:

    - создаем файл cmdstart.bat внутри которого

    start cmd.exe

    - запускаем этот файл и видим командную строку;

    - закрываем командную строку;

    - устанавливаем через вкладку "безопасность" свойств файла прямой запрет на чтение;

    - пытаемся запустить....в результате- видим как промелькнуло окно интерпретатора, если поймать момент, то в нем будет текст ошибки: Отказано в доступе.

    17 ноября 2007 г. 7:44
  •  stanisluv написано:

    Вообще-то насколько я знаю UAC тот же Run AS, только в графическом виде.

    Функции UAC более обширны.

    17 ноября 2007 г. 7:50
  • Минуточку. Я не сказал сделать запрет на чтение. Я сказал сделать запрет на редактирование и просмотр. А это немного разные вещи. Вы не забывайте, что среди разрешений есть разрешение на запуск.

    18 ноября 2007 г. 1:28
  • Посмотрите здесь, автор утверждает, что делает ЭТО постоянно и с успехом. Может быть и Вам поможет ...

    http://oszone.net/5004/PowerToy_Windows_Vista

    18 ноября 2007 г. 4:55