LINUX.ORG.RU
ФорумAdmin

LDAP, LDIF и создание базы.


0

0

Запустил OpenLDAP, могу подключится к нему LDAP Administration 
tool'ом, 
наблюдать корневой элемент (dn: dc=mydomain, dc=ru), пустые списки
машин и людей. Конфиг такой: 

include         /etc/openldap/schema/core.schema
pidfile         /var/run/openldap/slapd.pid
argsfile        /var/run/openldap/slapd.args
database        bdb
suffix          "dc=fusion-mng,dc=ru"
checkpoint      32      30 # <kbyte> <min>
rootdn          "cn=root,dc=fusion-mng,dc=ru"
rootpw          secret
directory       /var/lib/openldap-data
index   objectClass     eq

Встал жгучий вопрос, как же авторизоваться чтобы понаделать 
пользователей и машины? Может надо в конфиге что-то подкрутить чтобы 
позволяло пользователей добавлять? 

Ещё помогите разобраться с LDIF'ом. Вот, например, что сие означает? 

dn: dc=example,dc=com
objectclass: dcObject
objectclass: organization
o: Example Company
dc: example

Первая строчка это, как я понимаю, "адрес", путь к элементу в 
иерархическом дереве. А дальше что идёт? Что есть objectclass и почему 
это слово встречается дважды? RTFM не предлагать, читал LDAP HOWTO и 
OpenLDAP Administration Guide, просветления не достиг. Объясните, 
пожалуйста, другими словами, на примерах. Благодарности моей не будет
предела. 
★★★★★

Все, идущее после dn, что не objectclass, - это атрибуты.
objectClass - это группа, совокупность атрибутов.
Что-то вроде как в базах данных есть таблицы и поля, которые заданы в них.

Атрибуты и классы берутся из подключаемых схем (файлы *.schema). Там можно увидеть (думаю после прочтения manual-ов синтаксис файлов-схем должен быть понятен) какие вообще есть в наличии атрибуты и в какие классы они объединены.

Указывая в ldif-файле для записи (DN) заданные классы, мы тем самым указываем какой список атрибутов хотим для этой записи иметь: хотите чтоб у записи было поле, например, userPassword - ищете в схемах любой objectclass, в котором оно упоминается (may или must) и прописываете этот класс в записи в ldif-файле.

Т.е. для того, чтоб в вашем примере в объекте можно было задавать атрибуты "o" и "dc", необходимо использовать какие-либо классы, в которых эти атрибуты прописаны (либо написать свою схему со своими собстевенными классами и атрибутами).

Understand ? :-)

spirit ★★★★★
()

Блин тыбя что на гугле забанили?

http://www.linux.com/articles/114074?theme=print

только нормально про повышение безопасности pam+nss я нигде не встречал, так что сам эксперементируй, я смог добиться того чтоб пароли вообще не хранилить на клиентах + прикрутил к su,sudo,etc..

UrbanSerj
()

> как же авторизоваться чтобы понаделать пользователей и машины?
С помощью rootdn/rootpw не устраивает ?

> что-то подкрутить чтобы позволяло пользователей добавлять
Пользователи как таковые добавляются в систему, а не в ldap. Для ldap-а все пользователи - просто набор каких-то записей. Поэтому для начала надо бы определиться, добавление каких записей вы понимаете под "добавлением пользователя", а затем уже смотреть как это правильно оформить согласно особенностям хранения данных в ldap-е.

По-русски: надо смотреть в логах что ищет в ldap-е софт, авторизующий пользователей, и потом подстраиваться под него (добавлять такое, какое он сможет найти). Есть большое подозрение, что в вашем случае нужно просто сделать include остальных схем и все.

spirit ★★★★★
()
Ответ на: комментарий от spirit

> С помощью rootdn/rootpw не устраивает ? 
Сейчас насоветуете человеку. Это не кошенный вариант.

Может так?

1. Создаем test.ldif

dn: cn=testuser,ou=People,dc=mydomain
cn: testuser
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
sn: User
uid: testuser
uidNumber: 1025
gidNumber: 9000
homeDirectory: /tmp
userPassword: {SSHA}+3Jo7zkIuoj+NwD+LUunIMOVYrqu4OV1

2. И закидываем в LDAP:

ldapadd -x -D "cn=admin,dc=mydomain" -W -f base.ldif

UrbanSerj
()
Ответ на: комментарий от UrbanSerj

В таком случае нужен пукт 3: прописываем в slapd.conf разрешения на модификацию нужной ветки ldap-а для пользователя "cn=testuser,ou=People,dc=mydomain".

spirit ★★★★★
()
Ответ на: комментарий от spirit

ненадо этого прописывать... мы же от админа добавляет...

права только настроить... анонимам - аутификацию self - менять пароль админу - все

и то это права настроены по дефолту (по крайней мере в дебиане)

UrbanSerj
()

RTFM x.501 и x.511. Мутно, я знаю, но выхода другого нет. И зачем зацикливаться с OpenLDAP? Поставь Fedora directory server, а если для баловства и не в продакшене - Apache directory server. А если не для баловства и в продакшене, то Novell eDirectory ;)

Объяснить бы я тебе объяснил, но подобное объяснение родит как минимум эссе в десяток килобайт... У LDAP - своя кривая обучения. Сначала нужно освоить его, а затем PAM-ldap, NSS и т.п. фигню.

К слову сказать, и тот и другой поддерживают *SQL. Может лучше на нем?

Macil ★★★★★
()
Ответ на: комментарий от Macil

Ну я его поднял где-то за 3 дня + 2 дня курения манов... Так что ничего сложного там особо нету, при том что это был мой первый опыт администрирования....

UrbanSerj
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.