Perl для системного администрирования


Информация о пользователях в Windows NT/2000 - часть 2


Для выполнения большинства операций с пользователями я предпочитаю модуль Win32: .-AdrcinMisc, поскольку он предлагает множество инструментов системного администрирования, кроме того, Рот активно поддерживает его в нескольких форумах. И хотя доступная в Сети документация по этому модулю очень хороша, лучшая документация -это книга самого автора «Win32 Perl Programming: The Standard Extensions» (Программирование на Perl для Win32: стандартные расширения) (Macmillan Technical Publishing). Такую книгу всегда полезно иметь под рукой, если вы собираетесь писать на Perl программы для Win32.

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

/etc/passwd в Unix:

use Win32::AdminMisc;

и получаем список всех локальных пользователей

Win32::AdminMisc::GetUsers('','',\@users) or

die "Невозможно получить список пользователей: $!\п";

П получаем их атрибуты и выводим их foreach $user (@users){

Win32::AdminMisc::UserGetMiscAttributes('',$user,\%att ribs)

or warn " Невозможно получить атрибуты: $!\п"; print join(":",$user,

' * '

$attribs{USER_USER_ID},

$attribs{USER_PRIMARY_GROUP_ID},

$attribs{USER_COMMENT},

$attribs{USER_FULL_NAME},

$attribs{USER_HOME_DIR_DRIVE}.

$attribs{USER_HOME DIR}, "),"\n";

}

Наконец, вы можете использовать модуль Win32: : OLE для доступа к интерфейсам активных служб каталогов (ADSI, Active Directory Service Interfaces). Данная служба встроена в Windows 2000 и ее можно установить на Windows NT 4.0. Эта тема и соответствующие примеры будут подробно рассмотрены в главе 6 «Службы каталогов».

Другие примеры программ на Perl для работы с пользователями в NT/2000 встретятся позже, а пока вернемся к обсуждению различий между пользователями в Unix и Windows NT/2000.

Идентификаторы пользователей в NT/2000

Идентификаторы пользователей в NT/2000 создаются не простыми смертными и их нельзя использовать повторно. В отличие от Unix, где мы просто берем следующий свободный идентификатор пользователя, в Windows NT/2000 операционная система уникальным образом генерирует эквивалентный идентификатор каждый раз при создании пользователя. Уникальный идентификатор пользователя (который в NT/2000 называется относительным идентификатором или RID, Relative ID) объединяется с идентификатором машины и домена, и вместе они образуют длинный идентификационный номер - идентификатор безопасности (SID, Security ID), который используется в качестве1 идентификатора пользователя (UID). Например, RID равный FOG, является частью длинного идентификатора SID, который выглядит так:




- Начало -  - Назад -  - Вперед -



Книжный магазин