Управление пользователями
— Пацаки! Почему не в намордниках?
(с) "Кин-Дза-Дза!"
Постановка задачи
Среди писем, пачками приходящих мне на
e-mail, попался один любопытный экземпляр. Его
автор задал вопрос, касающийся управления
пользователями, а заодно предложил
написать статью на эту тему. Что ж, по
прошествии энного количества времени эта
идея всплыла в моем мозгу, и я решил
реализовать ее в статье. Итак, сегодняшнее
заседание нашего клуба будет посвящено
администрированию пользовательских
учетных записей и всему, что с этим как-либо
связано.
Учетные записи
Для начала
разберемся с некоторыми понятиями —
например, с аккаунтами (учетными записями).
Немного эту тему мы затрагивали в
предыдущей статье про списки контроля
доступа (КГ №29). Для упрощения задачи
будем говорить о NT-системе, не входящей в
домен.
Каждая многопользовательская ОС имеет базу
данных, содержащую сведения о ее
пользователях. В их число входят: имя,
пароль, имена групп и некоторые другие
данные. В UNIX-системах эти данные хранятся в
обычном текстовом файле зашифрованными (точнее,
хэшированными), в NT же роль хранилища играет
реестр.
Часть HKEY_LOCAL_MACHI-NE\SECURITY реестра, недоступная
по умолчанию даже администратору, хранит
шифрованные данные, касающиеся
безопасности. Среди них есть также
подраздел SAM (Security Account Manager) —
хэшированная база данных пользователей, в
которой перечислены все
зарегистрированные в системе пользователи,
группы и их привилегии. SAM проецируется на
диск в виде куста (улья) реестра (файл SAM в
папке %SystemRoot%\system32\config). Именно его копируют
взломщики для последующего анализа и
взлома специальными утилитами, однако
сделать это (т.е. скопировать) можно только
загрузившись в другой ОС, так как этот файл
заблокирован системой. К слову, взломать
систему удаленно и перебрать пароли, имея
SAM-файл, — две большие разницы, так что не
пренебрегайте паролями на BIOS и прочими
ограничениями на локальный доступ к
компьютеру.
Движемся дальше. База у нас есть. Теперь при
входе в систему ОС спрашивает у нас имя (логин)
и пароль. Благодаря этим данным она может
нас аутентифицировать. Интересный момент: в
современных ОС пароли не шифруются, а
хэшируются различными алгоритмами. В чем
разница? В том, что хэширование — это
необратимое шифрование, т.е. по хэшу пароль
невозможно узнать иначе как прямым
перебором (есть, конечно, исключения,
связанные с методикой хэширования и
выбранным алгоритмом). Получается мнимый
парадокс: как система узнает, что пароль
верный, если она имеет только его
необратимый хэш? Легко! Она просто
произведет хэширование введенного пароля и
сравнит с имеющимся в базе хэшем. Тут,
однако, есть свои нюансы: например, для
некоторых алгоритмов, имеющих малый
разброс значений, возможна ситуация, когда
несколько разных паролей имеют одинаковый
хэш, в итоге есть теоретическая возможность
пробраться в систему "нахаляву". Все
это, правда, не имеет для нас практического
интереса (есть же соответствующая
литература), поэтому тут останавливаться мы
больше не будем.
Для большего удобства все пользователи
объединены в группы, обладающие
соответствующими правами — например,
стандартные группы Пользователи и
Администраторы. Не следует путать права
пользователей вообще с правами на доступ к
определенному ресурсу (см. предыдущую
статью). Для изменения прав групп и
отдельных пользователей используется
оснастка Локальные параметры безопасности,
ветка Назначение прав пользователей (см.
рис. 1).
Всегда, когда это возможно, следует
разграничивать доступ к объектам на
основании групп — так гораздо удобнее (это,
кстати, официальный совет Microsoft и
дополнение к предыдущему материалу). Также
не забывайте, что все имена (пользователей и
групп) имеют значение лишь для глаз
пользователя, а система работает с
соответствующими SID, что заметно и в
файловой системе, и в реестре.
В ОС уже изначально присутствует ряд групп
и пользователей, называемых встроенными (Администраторы,
Гости и т.д.). Их невозможно удалить. Кроме
них, есть специальные группы вроде
Прошедших проверку, в которые входят другие
группы в зависимости от текущего состояния
системы. Вообще все пользователи могут быть
участниками как одной, так и нескольких
групп (включая упомянутые специальные —
правда, неявно). Права при этом
аккумулируются, т.е., если я вхожу в группу
Пользователи и Администраторы, то по сути
дела обладаю правами администратора
системы, так как права группы
Администраторы включают в себя все права
группы Пользователи плюс еще "вагон и
маленькая тележка":-).
Для управления пользователями и группами в
XP есть две основные утилиты (третья скрытая,
но о ней — позже). Первая — Учетные
записи пользователей из Панели управления (см.
рис. 2). Ее возможности весьма ограничены, но
основные вещи вроде создания/удаления
пользователя и смены пароля она выполнять
умеет. Главный недостаток данной утилиты
— невозможность работы с группами:
доступны только Пользователи и
Администраторы, но в большинстве случаев и
этого хватает. Да, данной утилитой могут
пользоваться и непривилегированные
пользователи, но только изменяя данные
своей учетной записи. В общем, полезная в
целом вещь.
Теперь кандидат №2 — оснастка
Управление компьютером, ветка Служебные
программы\Локальные пользователи и группы (рис.
3). Тут уж нам позволено все: и группы менять,
и путь к профилю задавать (о нем позже), и
пароли сбрасывать, и еще много всего. Нюанс:
ВСЕ действия непривилегированных
пользователей оснастка игнорирует — это
инструмент Администратора (с большой буквы
"А";-)).
И на десерт — вариант №1, но только в
исполнении Windows 2000 (остался в наследство).
Вызывается с помощью пункта Выполнить из
меню Пуск хитрой командой "control
userpasswords2" (без кавычек, естественно; рис. 4).
Возможности — баланс утилиты №1 и №2.
Думаю, данное средство кому-нибудь да
понравится.
Что ж, думаю, с этим разобрались. Рекомендую
поэкспериментировать, но только осторожно,
а еще лучше — на тестовой ОС (или на чужой
машине:-)). Теперь перейдем к технологии
пользовательских профилей.
Профили пользователей
Имея на компьютере несколько
пользователей, есть резон дать каждому из
них возможность настроить систему под себя,
причем так, чтобы у каждого были свои
независимые от других настройки. В итоге
получается профиль пользователя, который
хранит в себе не только параметры рабочего
стола, файлы данных программ, реестр (куст
HKEY_ CURRENT_USER в виде файла Ntuser.dat) и т.д., но и
персональные документы пользователя.
Профиль хранится по умолчанию в папке %System
Drive%\Documents and Set-tings\<Имя_пользователя> (переменная
%UserProfile%) — например: C:\Documents and Settings\Creator.
Подробно профиль мы рассматривать не будем,
остановимся только на основных моментах.
Профили бывают трех видов: локальные,
хранящиеся на локальном компьютере,
перемещаемые, загружаемые при входе в
систему с сервера, и обязательные —
перемещаемые профили, недоступные
пользователю для изменения. Управлять ими
можно с помощью Панели управления —
Система, закладка Дополнительно, кнопка
Параметры группы Профили пользователей.
Появится окошко (см. рис. 5), позволяющее
удалять, копировать и менять тип профиля.
Определенный интерес вызывает функция
копирования, позволяющая быстро применить
нужные параметры к новому пользователю.
Следует, однако, учесть, что копировать
нужно НЕ из-под пользователя, который вошел
в систему (некоторые файлы заблокированы
системой).
Также нужно обладать достаточными правами
на доступ к этим файлам, т.е. по сути дела
входить в группу Администраторы, а также не
забыть разрешить доступ к профилю
пользователю, чьим будет этот профиль.
Рассмотрим такой пример. У нас есть
пользователь Alexia, а нам захотелось добавить
тестового пользователя Test. Чтобы не
мучиться с настройками рабочего стола и
проч., и проч., мы решили позаимствовать
настройки у Alexи'и. Конечно, можно разрешить
Test'у пользоваться профилем Alex'и, но ведь он
тестовый: вдруг профиль "завалит"? Итак,
делаем раз: создаем пользователя Test (скажем,
в группе Пользователи). Делаем два:
логинимся под ним, чтобы система создала
профиль (обязательно! Иначе ничего не
получится). Делаем три: выходим из системы (выходим,
а не переключаемся). А дальше просто: в
Профилях пользователя (рис. 5) выбираем
кнопку Копировать для нужного профиля (он
не должен быть загружен!), в диалоговом окне
выбираем папку с профилем Test, разрешаем
использование профиля пользователю Test,
жмем OK — и вуаля! Осталось только
проверить, как все сработало. Лично у меня
этот тест прошел на ура, хотя теоретически
возможны небольшие проблемы (с абсолютными
путями, например).
На этом, наверное, сегодня и остановимся.
Будут вопросы — пишите.
До следующих встреч.
Creator, for_creator@tut.by
© компьютерная
газета