NT club. Часть 17. Управление пользователями

NT club. Часть 17. Управление пользователями

— Пацаки! Почему не в намордниках?
(с) "Кин-Дза-Дза!"

Постановка задачи
Среди писем, пачками приходящих мне на 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



Компьютерная газета. Статья была опубликована в номере 31 за 2003 год в рубрике soft :: win

©1997-2024 Компьютерная газета