Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
serverguide-precise-ru.pdf
Скачиваний:
77
Добавлен:
03.05.2015
Размер:
1.86 Mб
Скачать

Сетевая аутентификация

olcDatabase={0}config,cn=config: конфигурационная база slapd (cn=config)

olcDatabase={1}hdb,cn=config: экземпляр вашей базы данных

(dc=examle,dc=com)

А здесь показано как выглядит дерево dc=example,dc=com:

ldapsearch -x -LLL -H ldap:/// -b dc=example,dc=com dn

dn: dc=example,dc=com

dn: cn=admin,dc=example,dc=com

Пояснения к записям:

dc=example,dc=com: базовый уровень вашего дерева (DIT)

cn=admin,dc=example,dc=com: администратор (rootDN) данного дерева

(заполняется в процессе установки пакета)

1.3. Изменение/заполнение вашей базы данных

Давайте введём некоторые данные в нашу базу. Мы добавим следующее:

узел (node) с названием People (для хранения пользователей)

узел с названием Groups (для хранения групп)

группу с названием miners

пользователя с именем john

Создайте следующий LDIF файл и назовите его add_content.ldif:

dn: ou=People,dc=example,dc=com objectClass: organizationalUnit ou: People

dn: ou=Groups,dc=example,dc=com objectClass: organizationalUnit ou: Groups

dn: cn=miners,ou=Groups,dc=example,dc=com objectClass: posixGroup

cn: miners gidNumber: 5000

dn: uid=john,ou=People,dc=example,dc=com objectClass: inetOrgPerson

objectClass: posixAccount objectClass: shadowAccount

111

Сетевая аутентификация

uid: john sn: Doe

givenName: John cn: John Doe

displayName: John Doe uidNumber: 10000 gidNumber: 5000 userPassword: johnldap gecos: John Doe loginShell: /bin/bash homeDirectory: /home/john

Важно, чтобы значения uid и gid в вашем каталоге не совпадали с локальными значениями. Используйте диапазон больших чисел,

начинающийся, например, с 5000. Установка больших значений uid и gid для ldap также позволяет упростить контроль за тем что могут делать локальные пользователи, а что ldap. Подробнее об этом смотрите далее.

Добавляем данные:

ldapadd -x -D cn=admin,dc=example,dc=com -W -f add_content.ldif

Enter LDAP Password: ********

adding new entry "ou=People,dc=example,dc=com"

adding new entry "ou=Groups,dc=example,dc=com"

adding new entry "cn=miners,ou=Groups,dc=example,dc=com"

adding new entry "uid=john,ou=People,dc=example,dc=com"

Мы можем проверить что информация добавлена правильно с помощью утилиты ldapsearch:

ldapsearch -x -LLL -b dc=example,dc=com 'uid=john' cn gidNumber

dn: uid=john,ou=People,dc=example,dc=com cn: John Doe

gidNumber: 5000

Объяснения ключей команды:

-x: "простое" связывание; не будет использоваться метод SASL по умолчанию

-LLL: отключить вывод посторонней информации

uid=john: — «фильтр» для поиска пользователя john

112

Сетевая аутентификация

cn gidNumber: запрос на вывод определенных атрибутов (по умолчанию выводятся все атрибуты)

1.4. Изменение базы данных настройки slapd

Дерево (DIT) slapd-config также может запрашиваться и изменяться. Здесь приведено несколько примеров.

Используйте ldapmodifyдля добавления индекса (атрибут DbIndex) для вашей {1}hdb,cn=config базы (dc=example,dc=com). Создайте файл с названием uid_index.ldif следующего содержания:

dn: olcDatabase={1}hdb,cn=config add: olcDbIndex

olcDbIndex: uid eq,pres,sub

Затем выполните команду:

sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f uid_index.ldif

modifying entry "olcDatabase={1}hdb,cn=config"

Вы можете подтвердить изменения следующим способом:

sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ cn=config '(olcDatabase={1}hdb)' olcDbIndex

dn: olcDatabase={1}hdb,cn=config olcDbIndex: objectClass eq olcDbIndex: uid eq,pres,sub

Давайте добавим схему. Сначала её нужно преобразовать в формат LDIF. Вы можете найти не преобразованные схемы в добавление к преобразованным в каталоге /etc/ldap/schema.

Удаление схемы из базы slapd-config — нетривиальная задача. Потренируйтесь добавлять схемы на тестовой системе.

Перед добавлением любой схемы вам следует проверить, какие схемы уже установлены (показан вывод по умолчанию, для состояния "из коробки"):

sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ cn=schema,cn=config dn

dn: cn=schema,cn=config

dn: cn={0}core,cn=schema,cn=config

113

Сетевая аутентификация

dn: cn={1}cosine,cn=schema,cn=config

dn: cn={2}nis,cn=schema,cn=config

dn: cn={3}inetorgperson,cn=schema,cn=config

В следующем примере мы добавим схему CORBA.

1.Создайте конфигурационный файл преобразования schema_convert.conf, содержащий следующие строки:

include /etc/ldap/schema/core.schema include /etc/ldap/schema/collective.schema include /etc/ldap/schema/corba.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/duaconf.schema include /etc/ldap/schema/dyngroup.schema

include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/java.schema

include /etc/ldap/schema/misc.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/openldap.schema include /etc/ldap/schema/ppolicy.schema include /etc/ldap/schema/ldapns.schema include /etc/ldap/schema/pmi.schema

2.Создайте выходной каталог ldif_output.

3.Определите индекс схемы:

slapcat -f schema_convert.conf -F ldif_output -n 0 | grep corba,cn=schema

cn={1}corba,cn=schema,cn=config

Когда slapd вводит объекты с тем же родительским DN, он создает индекс для этого объекта. Индекс обрамляется скобками: {X}.

4.Используйте slapcat для выполнения преобразования:

slapcat -f schema_convert.conf -F ldif_output -n0 -H \ ldap:///cn={1}corba,cn=schema,cn=confi

Сконвертированная (преобразованная) схема теперь в cn=corba.ldif

5.Редактируйте cn=corba.ldif по достижении следующих атрибутов:

dn:

cn=corba,cn=schema,cn=config

...

114

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]