Отправляет email-рассылки с помощью сервиса Sendsay

KirovLUG: пользователи Linux в Вятке

Чтиво: установка сервера часть 028

Настройка и использование LDAP. Часть II.

Теперь я подробнее расскажу об инструментарии для работы с LDAP.
Для начала рассмотрю утилиту slappasswd, генерирующую зашифрованные
пароли (точнее результат вычисления hash-функции от пароля) для
подстановки их в файлы конфигурации и ldif-файлы (файлы данных для
LDAP).

$ /usr/sbin/slappasswd
New password:
Re-enter new password:
{SSHA}jeNRk8wLw4DYLdl+x+S8Z0dLECzYythQ

полученная строка целиком подставляется в нужное место. Иногда
(например, при использовании courier-imap) необходимо задать алгоритм
"шифрации". Это делается с помощью опции "-h". Возможные значения:
{CRYPT}, {MD5}, {SMD5}, {SSHA} и {SHA}, по умолчанию, как было видно,
используется SSHA. Итак,

$ /usr/sbin/slappasswd -h {MD5}
New password:
Re-enter new password:
{MD5}aY1RoZ2KEhzlgUmde3AWaA==

Для использования данной утилиты в скриптах можно использовать
опцию "-s", после которой необходимо указать парольную фразу:

$ /usr/sbin/slappasswd -h {MD5} -s supermegapassword
{MD5}4CwDn1ILFpCFGGwRKzslVQ==

Следующий инструмент используется для добавления данных в базу:
ldapadd. У этой программы есть два способа ввода данных: через
стандартный ввод (standard input) и через файл. Я покажу оба способа.
Чтобы задать элемент, от имени которого осуществляется ввод данных,
используется комбинация следующих ключей "-x -W -D <binddn>" - чтобы
произошел интерактивный запрос пароля, или "-x -D <binddn> -w <passwd>"
- для автоматической аутентификации. Итак,

1. Занесение новых данных через стандартный ввод

$ ldapadd -x -W -D cn=admin,dc=karavay-shops,dc=ru
Enter LDAP Password:
dn: dc=karavay-shops,dc=ru
objectclass: dcObject
objectclass: organization
dc: karavay-shops
o: Office of Karavay's Shops
description: LDAP Server of Office
<Нажать Enter>
adding new entry "dc=karavay-shops,dc=ru"

dn: cn=admin,dc=karavay-shops,dc=ru
objectclass: organizationalRole
cn: admin
<Нажать Enter>
adding new entry "cn=admin,dc=karavay-shops,dc=ru"
<Нажать Ctrl+C>

2. Занесение новых данных с помощью файла

Создается файл init.ldif

begin init.ldif dn: ou=users,dc=karavay-shops,dc=ru
objectclass: organizationalUnit
ou: users
description: Users entry

dn: ou=services,dc=karavay-shops,dc=ru
objectclass: organizationalUnit
ou: services
description: Services entry

dn: ou=networks,dc=karavay-shops,dc=ru
objectclass: organizationalUnit
ou: networks
description: Networks entry

dn: ou=test,dc=karavay-shops,dc=ru
objectclass: organizationalUnit
ou: test
description: Test entry

dn: cn=test,ou=users,dc=karavay-shops,dc=ru
objectclass: organizationalRole
cn: test

dn: cn=test1,ou=users,dc=karavay-shops,dc=ru
objectclass: organizationalRole
cn: test1
end init.ldif И вносятся новые данные в базу:

$ ldapadd -x -D cn=admin,dc=karavay-shops,dc=ru -w megapass -f init.ldif
adding new entry "ou=users,dc=karavay-shops,dc=ru"
adding new entry "ou=services,dc=karavay-shops,dc=ru"
adding new entry "ou=networks,dc=karavay-shops,dc=ru"
adding new entry "ou=test,dc=karavay-shops,dc=ru"
adding new entry "cn=test,ou=users,dc=karavay-shops,dc=ru"
adding new entry "cn=test1,ou=users,dc=karavay-shops,dc=ru"

Намерено были занесены дополнительно 4 ненужных объекта. Сейчас я
их удалю с помощью утилиты ldapdelete. Можно использовать те же самые
ключи, как и в ldapadd. У этой программы есть 3 способа удалить объект:
через файл, standart input и непосредственно в командной строке.

1. Через файл

Создается файл del_entry

begin del_entry # строчек может быть много
ou=test,dc=karavay-shops,dc=ru
<в конце файла обязательно перевод строки>
end del_entry и удаляются соответствующие объекты

$ ldapdelete -x -D cn=admin,dc=karavay-shops,dc=ru -W -f del_entry
Enter LDAP Password:

2. В командной строке:

$ ldapdelete -x -D cn=admin,dc=karavay-shops,dc=ru \
-w megapass cn=test1,ou=users,dc=karavay-shops,dc=ru

3. Через стандартный ввод:

$ ldapdelete -x -D cn=admin,dc=karavay-shops,dc=ru -w megapass
ou=networks,dc=karavay-shops,dc=ru
cn=test,ou=users,dc=karavay-shops,dc=ru
<Нажать Ctrl+C>

Еще один инструмент для изменения атрибутов существующих объектов:
ldapmodify. Хотя им также можно добавлять и удалять объекты. Тоже умеет
работать интерактивно и через файл. Я же рассмотрю только интерактивную
работу.

$ ldapmodify -x -D cn=admin,dc=karavay-shops,dc=ru -W -a
Enter LDAP Password:
dn: uid=test1,ou=users,dc=karavay-shops,dc=ru
objectclass: posixAccount
cn: Test User
uid: test
uidNumber: 7000
gidNumber: 7000
homeDirectory: /tmp
userPassword:
gecos: Super Puper Testing User
<Нажать Enter>
adding new entry "uid=test1,ou=users,dc=karavay-shops,dc=ru"

Теперь я хочу изменить у этого пользователя атрибут "uid", добавить
новый атрибут "description" и удалить атрибут "gecos". Нужно обратить
внимание на разделители "-" между операциями - они обязательны...

$ ldapmodify -x -D cn=admin,dc=karavay-shops,dc=ru -W
Enter LDAP Password:
dn: uid=test1,ou=users,dc=karavay-shops,dc=ru
changetype: modify
replace: uid
uid: test2
-
add: description
description: Mega Super User Testing
-
delete: gecos
<Нажать Enter>
modifying entry "uid=test1,ou=users,dc=karavay-shops,dc=ru"
<Нажать Ctrl+C>

Хочу заметить, что изменился атрибут uid, а не сама dn-запись, что
бы изменить ее значение нужно воспользоваться командой ldapmodrdn:

$ ldapmodrdn -x -D cn=admin,dc=karavay-shops,dc=ru -W -r
Enter LDAP Password:
uid=test1,ou=users,dc=karavay-shops,dc=ru
uid=test2
<Нажать Ctrl+C>

И, наконец, командой ldapmodify можно удалять объекты из базы:

$ ldapmodify -x -D cn=admin,dc=karavay,dc=ru -W
Enter LDAP Password:
dn: uid=test2,ou=users,dc=karavay,dc=ru
changetype: delete
<Нажать Enter>
deleting entry "uid=test2,ou=users,dc=karavay,dc=ru"
<Нажать Ctrl+C>

C уважением, Kolotov Alexandr aka mr. Эбола
отвечать: akmypo***@m*****.ru
ICQ: 100349254

| Registered Linux user # 236664 |
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.kirovlug-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.kirovlug--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Wed, 3 Mar 2004 10:24:04 +0300 (#95539)