westward.cv.ua

Статьи на компьютерную тематику и личный блог

Главная Статьи Сисадмин Ограниченные права для пользователей - Часть 2
Иконки пользователейОчередная статья, продолжение темы об ограничении прав пользователей.

Для каждого пользователя Windows создает отдельную группу папок и файлов в папке Documents and Settings и отдельную ветвь в системном реестре. Если специально не менять настройки, в пределах своих папках и ветви реестра каждый пользователь имеет полные права. К папкам и реестру других пользователей доступ запрещен. Пользователи с правами "Администратор" не в счет, для них нет ограничений.

Но на компьютере есть не только личные папки и реестр, но и общие. Папка Windows – общая для всех пользователей папка системных файлов, Program Files – общая папка установленных программ, ветвь реестра HKEY_LOCAL_MACHINE – общая для всех ветвь системного реестра. И если у пользователя нет прав "Администратора", полный доступ к названным выше общим системным ресурсам для него будет запрещен.

Для грамотно написанной программы такие ограничения не являются проблемой. Пусть даже для того, чтобы установить программу, нужны права "Администратора". Но далее, для того чтобы работать, полные права не очень-то нужны. Если требуется что-то прочитать/записать, то к услугам программы папки пользователя в Documents and Settings. Если нужно что-то хранить в реестре, то у каждого пользователя своя ветвь HKEY_CURRENT_USER. Даже удобно: один пользователь выбирает для себя шрифт покрупнее и черный фон, а второй – фон с картинкой. У каждого свое, все довольны.

В последние годы программ, которые нормально работают с правами "Пользователя", становится все больше. К примеру, популярный QIP раньше записывал данные пользовательских профилей в свою папку в Program Files, а теперь – в папки пользователей. Плейер AIMP2 при установке предлагает выбрать многопользовательский и старый режим. Вообще, если программа не учитывает многопользовательские особенности Windows и различные права пользователей, то это или старая, или неграмотно написанная программа.

Продолжим. С запуском некоторых программ с правами "Пользователя" возникают проблемы. Их можно поделить на две группы: проблемы доступа к диску и проблемы доступа к реестру Windows.

Чаще и проще всего дисковые проблемы решаются назначением полных прав доступа на папку программы для одного или группы пользователей. Например, щелкаем правой кнопкой мыши на папке C:\Program Files\AIMP2, выбираем пункт Свойства и в окне свойств вкладку Безопасность, и для группы "Пользователи" отмечаем все пункты, включая полный доступ к этой папке:

Окно прав доступа NTFS


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

Если не удается вычислить, для какого файла или папки не хватает прав, помочь сможет замечательная программа FileMon знаменитой фирмы Sysinternals. Эта программа перехватывает и выводит в окно обращения к файловой системе. А чтобы не утонуть в потоке запросов, которые отрабатывает ваш компьютер, у программы есть фильтр. Итак, после запуска программы жмем на кнопку Capture, чтобы остановить отслеживание системы, затем кнопку Clear, чтобы почистить окно. Затем используем кнопку Filter, чтобы отслеживать не все подряд, а только нужное:

Программа FileMon, Sysinternals


В этом примере я указал в фильтре название почтовой программы Mozilla Thunderbird (файл программы имеет имя thunderbird.exe – значит пишем в фильтре "thunderbird"). Обратите внимание на галочки внизу: можно отслеживать не все обращения к файловой системе, а только те, которые отработались неудачно.

Если какая-то программа под "Пользователем" работать отказывается, забиваем ее имя в фильтр FileMon’а, снимаем все галочки кроме Log Errors, жмем кнопку Capture и еще раз запускаем программу. Затем изучить отчет FileMon – вы получите подсказку, чего же программе не хватает для полного счастья.

Системный реестр Windows в чем-то похож на файловую систему. В реестре тоже есть папки, а вместо файлов там хранятся ключи – записи с разными именами. Для каждого отдельного ключа собственных прав доступа не предусмотрено, а вот для папок реестра такие права есть.

Что можно попробовать изменить, если программа спотыкается на доступе к реестру? Во-первых, с помощью системной утилиты Regedit просмотреть ветвь реестра HKEY_LOCAL_MACHINE/SOFTWARE. Возможно, что там есть папка программы (ищем по имени программы или имени фирмы-изготовителя) и для "Пользователя" недостаточно прав и их можно изменить:

Окно regedit, установка прав доступа


Для мониторинга реестра Sysinternals создала аналог FileMon – программу RegMon. Все то же самое, только вместо отслеживания файловой системы ищем неудачные попытки чтения/записи в реестр Windows.

Кроме этого, есть Интернет: всегда можно набрать в поисковой системе фразу, которая коротко описывает вашу проблему: возможно, что это уже обсуждалось на каком-либо сайте или форуме и уже есть готовое решение.

В следующей статье - о хитрых пользователях и Software restriction policies (Политиках ограничения программного обеспечения). До встречи!