Глава 4
оператор ставится
до
самих величин. Например, если вам необходимо найти всех
пользователей с фамилией
Иванов
, то фильтр следовало бы записать по следующей
форме:
И(тип=пользователь)(фамилия=Иванов))
То есть, два условия объединены требованием
И
, которое записано
до
условий.
В фильтрах допустимы операторы, приведенные в табл. 4.1.
Таблица 4.1.
Допустимые операторы фильтров
Оператор Описание
=
Равно
~=
Приблизительно равно
<=
Меньше или равно
>=
Больше или равно
&
И
|
ИЛИ
!
НЕТ
П
РИМЕЧАНИЕ
Некоторые объекты допускают использование поиска по маске (
*
), в общем случае
наличие такой возможности следует уточнить по документации.
Если в запросе необходимо использовать символы:
(
,
)
,
*
и
NUL
, то они должны
быть записаны через escape-последовательность так, как показано в табл. 4.2.
Таблица 4.2.
Escape-последовательности
Символ Записывается
как
* \2a
( \28
) \29
\ \5c
NUL \00
П
РИМЕЧАНИЕ
Аналогично через escape-последовательность записываются двоичные данные с раз-
биением по два байта.
Определенную сложность при первых обращениях к операциям поиска вызывает
знание необходимого атрибута, который должен быть использован в операции.
Можно порекомендовать просмотреть все атрибуты объекта этого же типа, выбрать
Информационные системы предприятия
161
нужное свойство и использовать его в запросе. Это можно сделать и в самой про-
грамме
ldp.exe
, если включить отображение вывода в результате поиска
всех
атри-
бутов. Для этого следует открыть окно поиска, нажать кнопку
Option
и в строку
перечня атрибутов ввести звездочку:
*
.
П
РИМЕЧАНИЕ
Чтобы вернуться к выводу сокращенного списка атрибутов, следует в нужной строке
указать (через точку с запятой) названия тех атрибутов, которые должны отображать-
ся на экране по результатам поиска.
Покажем на небольшом примере, как можно быстро найти в домене пользователя
по второму почтовому адресу.
Дополнительные адреса электронной почты, которые присвоены пользователю,
приводятся в атрибуте
proxyaddresses
. Дополним перечень отображаемых атрибу-
тов этим значением (допишем его в строку
Attributes
после точки с запятой) и
снимем флажок в параметре
Attributes
, чтобы программа поиска вывела на экран
значения атрибутов. Установим в окне настройки фильтра поиска в качестве
начальной точки имя нашего домена, а критерием поиска выберем следующую
строку:
(&((objectclass=user)(proxyaddresses=*
адрес
*)))
Она означает, что мы хотим искать только пользователей, у которых один из адре-
сов электронной почты содержит символы
адрес
(в любом месте адреса). Выберем
зону поиска по всей базе (SubTree). Выполнив поиск, мы получим на экране необ-
ходимые сведения.
Команда
ldifde
Большинство системных администраторов предпочитают использовать для конфи-
гурирования серверов текстовые файлы, поскольку с ними удобнее работать, чем
с двоичной информацией. Для каталогов существует стандарт LDIF (LDAP
Interchange Format, определен в документе RFC 2849), который устанавливает пра-
вила представления данных каталога в текстовом файле.
LDIF-файл состоит из текстовых строк, в которых приведены атрибуты объектов,
их значения и директивы, описывающие способы обработки этой информации.
В Windows имеется утилита
ldifde
(запускаемая одноименной командой), которая
выполняет преобразование данных из службы каталогов, используемой в Windows,
в текст и обратно. Ключи утилиты позволяют уточнить точку подключения, глуби-
ну выборки, указать фильтры операции и т. п.
На эту утилиту обычно обращается мало внимания, хотя она может существенно
упростить многие административные задачи. Так, с помощью LDIF-файлов выпол-
няется модификация схемы каталога при установке новых приложений.
Предположим также, что вам необходимо откорректировать параметры пользова-
тельских учетных записей — например, указать для всех работников некоторого
подразделения в свойствах учетных записей название их отдела. Выполнение опе-
162
Глава 4
рации «в лоб» — последовательное открытие учетных записей и вставка нужного
описания в соответствующее поле — весьма трудоемко и нерационально при
значительном числе сотрудников. А с помощью утилиты
ldifde
можно выполнить
экспорт в текстовый файл параметров учетных записей пользователей
только
для
заданного подразделения (установив фильтр по конкретному OU), после чего с по-
мощью обычного текстового редактора одной операцией поиска и замены откор-
ректировать значения нужных атрибутов. В завершение достаточно выполнить
импорт полученного файла. В результате атрибуты для
всех
записей будут откор-
ректированы практически за несколько шагов.
П
РИМЕЧАНИЕ
Подобная операция также весьма просто выполняется с помощью сценария Visual
Basic. Необходимо лишь подключиться к нужному контейнеру, установить фильтр для
выборки только объектов типа «пользователь» и запустить цикл для каждого элемента
такого типа в этом контейнере. Однако приведенная схема работы с помощью утили-
ты ldifde не требует от администратора знания сценариев и может быть выполнена
буквально в течение нескольких минут.
Ранее мы рассматривали пример, как с помощью команды
dsquery
получить список
компьютеров, длительное время не работавших в составе сети. Приведем второй
способ, дающий возможность получить в файл такой список с помощью команды
ldifde
:
ldifde -f <
имя_файла
>.txt -n -d
«
dc=<
имя_домена
>,dc=ru
»
-r
«
(&(objectcategory=computer)(|(lastlogon<=127296891259257277)(!lastlogon=*)))
»
-p SubTree -l lastlogon
В фильтре использовано представление даты в машинном формате. Такие значения
легко можно получить при помощи простых операций, например:
Dim Time1 As System.DateTime = System.DateTime.Now().AddMonths(-2)
Dim FileTime1 = Time1.ToFileTime
Переменная
FileTime1
будет иметь значение, соответствующее дате двухмесячной
давности. Необходимо учитывать, что компьютеры, которые не перезагружались
в течение этого периода, также будут иметь «старые» значения времени входа
в систему. Фильтр выводит и имена компьютеров, для которых отсутствует значе-
ние параметра времени входа в систему.
Представленный пример несколько искусственен, поскольку результат может быть
получен более простым способом. Но он приведен именно для того, чтобы проил-
люстрировать существование различных возможных вариантов действий админи-
страторов.
Делегирование прав
На небольших предприятиях системный администратор выполняет все функции,
касающиеся управления доменом. Он создает и удаляет пользователей, добавляет
компьютеры в домен и т. д. Но в крупных компаниях у системного администратора
Информационные системы предприятия
163
слишком много работы, и некоторые функции администратор может переложить на
других сотрудников. Например, поручить создание новых учетных записей можно
сотруднику отдела кадров, а создавать учетные записи компьютеров — техниче-
скому специалисту. При этом администратор может также выполнять все эти
функции самостоятельно (т. е. у системного администратора остается возможность
вмешаться — в экстренном случае), но у него высвободится некоторое время, по-
скольку часть его работы станут выполнять те сотрудники, кому он это доверит.
Такая передача прав называется
делегированием
. И принято говорить: не «передать
право», а «делегировать» его. Перечень возможных прав доступа для контейнера
является настолько подробным, что администратор может легко настроить объем
делегирования, — например, делегировать право создания учетных записей поль-
зователей, но запретить их редактирование и/или удаление.
Большинство утилит графического управления объектами службы каталогов со-
держит в контекстном меню команду
Делегирование управления
, которая вызы-
вает
Мастер делегирования управления
(рис. 4.6). Этот мастер является самым
простым способом делегирования прав на объекты.
Рис. 4.6.
Мастер делегирования управления
Обратите внимание, что какого-либо мастера
отзыва
делегирования не существует.
Другими словами, если нужно у кого-то забрать делегированное ранее право, вам
придется вручную редактировать права доступа контейнера.
164
Достарыңызбен бөлісу: |