Статья DropMyRights: утилита для понижения прав приложений

Matias

Постоянный участник
Сообщения
121
Реакции
45
Порой в рекомендациях Microsoft трудно отыскать хоть какую-то логику. Так, корпорация рекомендует использовать учетную запись ограниченного пользователя. Однако, она имеет целый ряд недостатков:
  1. При использовании ограниченной учетной записи неизбежно возникнут проблемы с WGA Notifications (KB905474). Дело в том, что при проверке подлинности системы входящий в состав этого обновления валидатор записывает результаты проверки в следующий файл:
    Код:
    %ALLUSERSPROFILE%/Application Data/Windows Genuine Advantage/Data/data.dat
    Ограниченная учетная запись не имеет прав доступа к этому файлу. Из-за этого проверка подлинности Windows, естественно, завершается неудачей.

  2. Проблемы возникнут и при обновлении стороннего софта, поскольку почти любой программе необходим доступ к папке Program Files, а также к соответствующему разделу реестра.
  3. При использовании ограниченной учетной записи невозможна выборочная установка обновлений Windows.
  4. При использовании ограниченно учетно записи невозможно пользоваться сайтом Microsoft Update, а я предпочитаю обновлять систему именно таким образом.

Бесплатная утилита DropMyRights позволяет понизить права любых приложений. Таким образом, эти приложения будут запускаться с пониженными правами. Для понижения прав приложений надо создать для них специальные ярлыки.

Инструкция по использованию DropMyRights:

  1. Зайдите на страницу DropMyRights на сайте Microsoft.
  2. Щелкните по ссылке загрузки файла правой кнопкой мыши, выберите Сохранить объект как, затем сохраните установщик DropMyRights на рабочем столе.
  3. Запустите инсталлятор DropMyRights. В процессе установки измените следующие настройки:

    • Путь установки должен выглядеть так

      Код:
      С:\Program Files/DropMyRights
      По умолчанию утилита устанавливается в каталог текущего пользователя.
    • По умолчанию утилита устанавливается только для текущего пользователя. Лучше установить ее для всех пользователей, отметив соответствующую опцию.

  4. После завершения установки программы скачайте архив с готовым набором ярлыков для популярных приложений (IE, FF, TB, Outlook, WMP, Word), сохранив его на рабочем столе.
  5. Распакуйте архив, расположив соответствующие ярлыки в удобном месте рабочего стола. Можете поместить их на панель быстрого запуска. Для запуска соответствующих приложений надо будет пользоваться именно этими ярлыками вместо обычных. Примечание: как сказано выше, для посещения сайта Microsoft Update надо запускать Internet Explorer с полными правами. При попытке посещения MU с помощью IE, запущенном с ограниченными правами, появится сообщение об ошибке.

Для получения более подробной информации о DropMyRights прочитайте следующие статьи:

 

Вложения

  • DropMyRights.zip
    5.2 KB · Просмотры: 14
Последнее редактирование модератором:
Оказывается, Cobian Backup будет работать только в том случае, если пользователь имеет права администратора. При использовании ограниченной учетной записи придется настраивать особые права доступа к директории программы. Вот цитата из FAQ
Q: The program works fine when running as an administrator or power user in XP/2000 but it refuses to start as a normal user.

Check the NTFS security attributes of the directory where the program is located. Grant read access to everyone. Especially important are all the INI files in the subdirectory "Db". Grant read/write access to them for every user. This is especially important when running on Vista.
Вот и наглядный пример, демонстрирующий выгоду использования DropMyRights. Я не хочу отказываться от использования CobianBackup, поскольку другие программы резервного копирования мне не подошли (кроме CB я пробовал использовать JaBack и FBackup).
 
Особенно меня насмешила фраза
Programs that follow Microsoft programming recommendations should not experience issues with security restrictions.
Выходит, что при разработке WGA Notifications Microsoft игнорировала собственные рекомендации, поскольку эта программа (точнее, ее проверочный компонент) как раз требует прав администратора.
 
SafeRun - утилита для запуска программ с ограниченными привилегиями

Автор: Алексей Курякин
Ссылка на скачивание.
Распространяется как отдельно, так и в составе еще одной не менее интересной программы AdmiLink.

Добавлена программулька SafeRun, которая умеет запускать программы в скрытом окне, а также с ограниченными привилегиями (режим Safer). Это очень хорошо для запуска потенциально опасных программ - например, вызов saferun Firefox запустит браузер с весьма урезанными привилегиями (хотя и под тем же пользователем). Отсутствие привилегий сделает сеанс работы браузера безопаснее - даже при появлении вредоносного вируса ему будет трудно навредить, не имея достаточных привилегий. Программа поставляется с исходниками - изучайте.

Описание и примеры использования SafeRun.exe:

Copyright(c), 2012, Alexey Kuryakin, <kouriakine@mail.ru>.
SafeRun - Win32 utility to run program in Safer mode,v1.1.
Safer mode means restricted process privileges for safety.
Required client Windows XP or Server 2003 at least to run.
Use this program free under the terms of GNU LGPL license.

Usage: saferun [/opt] [-opt] cmdline

Options (started from / or - char):
-v - verbose mode: MessageBox on errors (default is silent)
it's better to place this option as 1st option in list
-w - wait while cmdline running, default is no waits
in wait mode SafeRun return cmdline's exit code
-h - run cmdline in hidden window (SW_HIDE), default is visible (SW_SHOW)
-0..9 run with display mode assigned to 0=SW_HIDE(like -h), 1=SW_SHOWNORMAL,
2=SW_SHOWMINIMIZED, 3=SW_SHOWMAXIMIZED, 4=SW_SHOWNOACTIVATE,
5=SW_SHOW(default), 6=SW_MINIMIZE, 7=SW_SHOWMINNOACTIVE,
8=SW_SHOWNA, 9=SW_RESTORE
-t - run cmdline in trusted mode, i.e. don't use Safer
-n - run cmdline in Safer mode as normal user, by default
-c - run cmdline in Safer mode as constrained user
-u - run cmdline in Safer mode as untrusted user
-f - run cmdline in Safer mode as fully trusted user
/? - run this help screen

Exit code returned by SafeRun:
0 - OK, cmdline was successfully started
1 - invalid options specified (unsupported opt)
2 - no arguments specified (empty command line)
3 - could not create Safer security level
4 - could not create Safer security token
5 - could not create process (invalid cmdline or access)
n - in wait mode (-w) SafeRun return cmdline's exit code

Examples:
saferun firefox.exe - run Web browser in Safer mode with normal user level
saferun /c firefox - run Web browser in Safer mode with constrained user level
saferun -u firefox - run Web browser in Safer mode with untrusted user level
saferun -f firefox - run Web browser in Safer mode with fully trusted user level
saferun -t firefox - run Web browser in normal mode, i.e. don't use Safer at all
saferun -wv notepad - run notepad in Safer mode with normal user level, wait, verbose
saferun -htw defrag - run defrag in fully trusted (i.e. normal) mode, hidden, wait result
saferun -t7 defrag - run deftag in trusted (i.e. normal) mode, minimized noactive, no wait
 
Последнее редактирование:
Ограничить права также можно с помощью psexec :

Код:
psexec -l -d "c:\program files\internet explorer\iexplore.exe"

Ключ -l запускает процесс от имени ограниченного пользователя (урезает права группы "Администораторы", предоставляя только права, назначенные группе "Пользователи").
На Windows Vista процесс запускается с низким уровнем целостности.
 
Последнее редактирование:
Действительно бывает необходимость урезать определенной программе доступ с Административными привилегиями:
1) например, пользователь работает под ограниченной учетной записью и правилами компании
не должен иметь Административных полномочий, а программа без таковых вообще не запускается.
2) когда реально такие права программе для работы не нужны, и хочется слегка обезопасить себя.
Контроль учетных записей UAC должен быть включен.

Как ограничить права программы.
Расскажу еще о родном способе средствами самой Windows через слой совместимости (Compatiblity Layer):

- создайте в блокноте файл с кодом:
Код:
set __COMPAT_LAYER=RunAsInvoker
start "" "%~fs1"
Сохраните через Файл -> Сохранить как -> "Имя скрипта.cmd" (расширение .cmd)

Использование:
Вариант 1. Перетяните программу, которой нужно понизить права на этот скрипт.
Вариант 2. Или можно нажать правой кнопкой по Вашей программе -> Отправить -> Имя скрипта.
(чтобы добавить скрипт в перечень меню "Отправить", нажмите ПУСК, в поисковой строке наберите Shell:SendTo и нажмите ENTER.
В открывшееся окно скопируйте скрипт (только для Windows не ниже Vista)).
Вариант 3. Создать ярлык, в поле "Объект" которого прописать в кавычках Путь к батнику, пробел, в кавычках Путь к Вашей программе.

Чтобы постоянно запускать конкретную программу с пониженными правами этим способом,
Вы можете также "привязать" путь программы к слою совместимости.

Для этого отредактируйте такой файл реестра (файл доступен внизу поста RunAsInvoker.reg -> Скачайте -> Правый клик по файлу -> Изменить.
Или создайте сами файл с таким содержанием:
Код:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\users\\alex\\desktop\\test.exe"="RunAsInvoker"
- сохранив с расширением .reg
- и заменив на свой путь к программе (разделитель папок - двойной слэш ! ).
- затем двойной клик по файлу -> согласиться на импортирование данных в реестр.

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

Вложения

  • RunAsInvoker.cmd.zip
    215 байт · Просмотры: 4
  • RunAsInvoker.reg
    368 байт · Просмотры: 5
Последнее редактирование:
Во вложении к первому посту находятся лишь ярлыки для запуска программ с пониженными правами, но не сама утилита DropMyRights.
 
Назад
Сверху Снизу