Запустил 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", необходимо использовать какие-либо классы, в которых эти атрибуты прописаны (либо написать свою схему со своими собстевенными классами и атрибутами).
только нормально про повышение безопасности pam+nss я нигде не встречал, так что сам эксперементируй, я смог добиться того чтоб пароли вообще не хранилить на клиентах + прикрутил к su,sudo,etc..
> как же авторизоваться чтобы понаделать пользователей и машины?
С помощью rootdn/rootpw не устраивает ?
> что-то подкрутить чтобы позволяло пользователей добавлять
Пользователи как таковые добавляются в систему, а не в ldap. Для ldap-а все пользователи - просто набор каких-то записей. Поэтому для начала надо бы определиться, добавление каких записей вы понимаете под "добавлением пользователя", а затем уже смотреть как это правильно оформить согласно особенностям хранения данных в ldap-е.
По-русски: надо смотреть в логах что ищет в ldap-е софт, авторизующий пользователей, и потом подстраиваться под него (добавлять такое, какое он сможет найти). Есть большое подозрение, что в вашем случае нужно просто сделать include остальных схем и все.
В таком случае нужен пукт 3: прописываем в slapd.conf разрешения на модификацию нужной ветки ldap-а для пользователя "cn=testuser,ou=People,dc=mydomain".
RTFM x.501 и x.511. Мутно, я знаю, но выхода другого нет. И зачем зацикливаться с OpenLDAP? Поставь Fedora directory server, а если для баловства и не в продакшене - Apache directory server. А если не для баловства и в продакшене, то Novell eDirectory ;)
Объяснить бы я тебе объяснил, но подобное объяснение родит как минимум эссе в десяток килобайт... У LDAP - своя кривая обучения. Сначала нужно освоить его, а затем PAM-ldap, NSS и т.п. фигню.
К слову сказать, и тот и другой поддерживают *SQL. Может лучше на нем?
Ну я его поднял где-то за 3 дня + 2 дня курения манов...
Так что ничего сложного там особо нету, при том что это был мой первый опыт администрирования....