Re: linuxовка
В Срд, 03.03.2004, в 15:58, Kolotov Alexandr пишет:
> Очередное сборище linuxового народа состоится на Театральной площади у
> сцены в пятницу в 19.00. Приглашаются все желающие.
Не смогу. :(
← Март 2004 → | ||||||
6
|
7
|
|||||
---|---|---|---|---|---|---|
8
|
9
|
10
|
11
|
13
|
14
|
|
15
|
16
|
20
|
21
|
|||
24
|
26
|
27
|
28
|
|||
29
|
30
|
31
|
За последние 60 дней ни разу не выходила
Сайт листа:
http://kirov.lug.ru
Открыт:
15-09-2003
Пре-модерация: Нет
Адрес для писем в лист: comp.soft.linux.kirovlug-list@subscribe.ru
В Срд, 03.03.2004, в 15:58, Kolotov Alexandr пишет:
> Очередное сборище linuxового народа состоится на Театральной площади у
> сцены в пятницу в 19.00. Приглашаются все желающие.
Не смогу. :(
Очередное сборище linuxового народа состоится на Театральной площади у
сцены в пятницу в 19.00. Приглашаются все желающие.
Кто может опоздать - предупредите заранее - на сколько, чтобы мы вас
подождали.
Думайте, куда можно сходить, чтоб не мутить на месте.
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
Настройка и использование LDAP. Часть III.
На текущий момент в базе LDAP существует следующая структура
karavay-shops.ru
|
|-- admin
|-- users
|-- services
Для использования bind совместно с LDAP нужно занести данные о
зонах DNS, для этого создаем ldif-файлы следующего содержания:
begin ou_dns.ldif dn: ou=DNS,dc=karavay-shops,dc=ru
objectclass: organizationalUnit
ou: DNS
description: DNS entry
end ou_dns.ldif для прямой зоны зоны "localhost"
***********************************************************************
$TTL 86400
$ORIGIN localhost.
@ IN SOA bridge.karavay-shops.ru. root.bridge.karavay-shops.ru.
(
2003111001 28800 14400 3600000 86400 )
IN NS bridge.karavay-shops.ru.
IN A 127.0.0.1
***********************************************************************
begin ou_dns_loc.ldif dn: zoneName=localhost,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
zoneName: localhost
relativeDomainName: localhost
dn: relativeDomainName=@,zoneName=localhost,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: @
zoneName: localhost
dNSClass: IN
sOARecord: bridge.karavay-shops.ru. root.bridge.karavay-shops.ru. 2004022701
28800 14400 3600000 86400
nSRecord: bridge.karavay-shops.ru.
aRecord: 127.0.0.1
end ou_dns_loc.ldif для обратной зоны "0.0.127.in-addr.arpa"
***********************************************************************
$TTL 86400
@ IN SOA bridge.karavay-shops.ru. root.bridge.karavay-shops.ru. (
2003111001 28800 14400 3600000 86400 )
IN NS bridge.karavay-shops.ru.
1 IN PTR localhost.
***********************************************************************
begin ou_dns_loc_r.ldif dn: zoneName=0.0.127.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
zoneName: 0.0.127.in-addr.arpa
relativeDomainName: 0.0.127.in-addr.arpa
dn: relativeDomainName=@,zoneName=0.0.127.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: @
zoneName: 0.0.127.in-addr.arpa
dNSClass: IN
sOARecord: bridge.karavay-shops.ru. root.bridge.karavay-shops.ru. 2004022701
28800 14400 3600000 86400
nSRecord: bridge.karavay-shops.ru.
dn: relativeDomainName=1,zoneName=0.0.127.in-addr.arpa,ou=DNS,dc=karavay-shops,dc=ru
objectClass: dNSZone
relativeDomainName: 1
zoneName: 0.0.127.in-addr.arpa
dNSClass: IN
pTRRecord: localhost.
end ou_dns_loc_r.ldif Добавляю их в базу:
$ ldapadd -x -D cn=admin,dc=karavay-shops,dc=ru -W -f ou_dns.ldif
$ ldapadd -x -D cn=admin,dc=karavay-shops,dc=ru -W -f ou_dns_loc.ldif
$ ldapadd -x -D cn=admin,dc=karavay-shops,dc=ru -W -f ou_dns_loc_r.ldif
На этом пока остановлюсь. А добавлю еще пользователей, сервисов, и
почтовых транспортов, с помощью которых покажу правила работы с ACL и
примеры использования программы ldapsearch.
Итак, сервисы:
begin services.ldif dn: cn=postfix,ou=services,dc=karavay-shops,dc=ru
objectclass: person
cn: postfix
sn: postfix
description: postfix account
userPassword: {SSHA}BxMFldDbN1o/ZdyyQOwt/qyW7YYx290A
dn: cn=courier,ou=services,dc=karavay-shops,dc=ru
objectclass: person
cn: courier
sn: courier-imap
description: courier account
userPassword: {SSHA}5lZkHbUOdAQFIN6RT36chw/+x+mGT3bV
end services.ldif $ ldapadd -x -D cn=admin,dc=karavay-shops,dc=ru -W -f services.ldif
Сейчас - пользователи:
begin users.ldif dn: uid=koal,ou=users,dc=karavay-shops,dc=ru
objectClass: posixAccount
objectClass: mailAccount
cn: standart mail account
uid: koal
userPassword: {MD5}8s7qFTasG8ypIx/ByEHg2w==
mail: Kolotov.Alexan***@m*****.com
mailAccess: enable
mailAlias: koal@m*****.com
mailAlias: kolotov.alexan***@m*****.com
mailAlias: ebo***@m*****.com
uidNumber: 500
gidNumber: 500
gecos: Kolotov Alexandr
homeDirectory: /home/koal
loginShell: /bin/bash
mailBox: koal/
mailDirectory: /var/spool/mail
mailQuota: 0
mailForward: Kolotov.Alexan***@m*****.com
dn: uid=nina,ou=users,dc=karavay-shops,dc=ru
objectClass: posixAccount
objectClass: mailAccount
cn: standart mail account
uid: nina
userPassword: {MD5}8s7qFTasG4/tGhZ6nIvwTQ==
mail: Sykchina.Ni***@m*****.com
mailAccess: enable
mailAlias: nina@m*****.com
mailAlias: sykchina.ni***@m*****.com
uidNumber: 501
gidNumber: 501
gecos: Sykchina Nina Sergeevna
homeDirectory: /home/nina
loginShell: /bin/bash
mailBox: myvirual.mydomain.com/nina/
mailDirectory: /var/spool/mail
mailQuota: 20480000
mailForward: Sykchina.Ni***@m*****.com
dn: ou=myvirual.mydomain.com,ou=users,dc=karavay-shops,dc=ru
objectclass: organizationalUnit
ou: myvirual.mydomain.com
description: virtual domain
dn: uid=abuse,ou=myvirual.mydomain.com,ou=users,dc=karavay-shops,dc=ru
objectClass: posixAccount
objectClass: mailAccount
cn: virtual mail account
uid: abuse
mail: abu***@m*****.com
mailAccess: enable
uidNumber: 5002
gidNumber: 5002
homeDirectory: /var/spool/mail/myvirual.mydomain.com
mailBox: myvirual.mydomain.com/abuse
mailDirectory: /var/spool/mail
mailQuota: 0
dn: uid=postmaster,ou=myvirual.mydomain.com,ou=users,dc=karavay-shops,dc=ru
objectClass: posixAccount
objectClass: mailAccount
cn: virtual mail account
uid: postmaster
mail: postmast***@m*****.com
mailAccess: enable
uidNumber: 5001
gidNumber: 5001
homeDirectory: /var/spool/mail/myvirual.mydomain.com
mailBox: myvirual.mydomain.com/postmaster
mailDirectory: /var/spool/mail
mailQuota: 0
dn: mailAlias=mailer-daem***@m*****.com,ou=myvirual.mydomain.com,ou=users,dc=karavay-shops,dc=ru
objectClass: mailRecipient
mailAlias: mailer-daem***@m*****.com
mailAccess: enable
mailForward: postmast***@m*****.com
dn: mailAlias=ro***@m*****.com,ou=myvirual.mydomain.com,ou=users,dc=karavay-shops,dc=ru
objectClass: mailRecipient
mailAlias: root@m*****.com
mailAccess: enable
mailForward: abu***@m*****.com
dn: uid=tany,ou=myvirual.mydomain.com,ou=users,dc=karavay-shops,dc=ru
objectClass: posixAccount
objectClass: mailAccount
cn: virtual mail account
uid: tany
userPassword: {MD5}vsxSxnBrT8ypIx/ByEHg2w==
mail: Novikova.Tatya***@m*****.com
mailAccess: enable
mailAlias: tany@m*****.com
mailAlias: novikova.tatya***@m*****.com
uidNumber: 5003
gidNumber: 5003
gecos: Novikova Tat'yana Alexandrovna
homeDirectory: /var/spool/mail/myvirual.mydomain.com
mailBox: myvirual.mydomain.com/tany/
mailDirectory: /var/spool/mail
mailQuota: 20480000
mailForward: Novikova.Tatya***@m*****.com
end users.ldif $ ldapadd -x -D cn=admin,dc=karavay-shops,dc=ru -W -f users.ldif
И последнее - почтовый транспорт:
begin transport.ldif dn: ou=mail,dc=karavay-shops,dc=ru
objectclass: organizationalUnit
ou: mail
description: mail service tree
dn: ou=transports,ou=mail,dc=karavay-shops,dc=ru
objectclass: organizationalUnit
ou: transports
description: MTA routing table
dn: mailDomain=karavay-shops.ru,ou=transports,ou=mail,dc=karavay-shops,dc=ru
objectclass: mailDomainTransport
mailDomain: karavay-shops.ru
mailTransport: local
description: domain name
dn: mailDomain=bridge.karavay-shops.ru,ou=transports,ou=mail,dc=karavay-shops,dc=ru
objectclass: mailDomainTransport
mailDomain: bridge.karavay-shops.ru
mailTransport: local
description: host name
dn: mailDomain=localhost.karavay-shops.ru,ou=transports,ou=mail,dc=karavay-shops,dc=ru
objectclass: mailDomainTransport
mailDomain: localhost.karavay-shops.ru
mailTransport: local
description: host name
dn: mailDomain=myvirtual.mydomain.com,ou=transports,ou=mail,dc=karavay-shops,dc=ru
objectclass: mailDomainTransport
mailDomain: myvirtual.mydomain.com
mailTransport: virtual
description: virtual domain name
end transport.ldif $ ldapadd -x -D cn=admin,dc=karavay-shops,dc=ru -W -f transport.ldif
В итоге получилась следующая структура:
karavay-shops.ru
|
|-- admin
|-- users
| |
| |-- koal
| |-- nina
| |-- myvirual.mydomain.com
| | |
| | |-- abuse
| | |-- postmaster
| | |-- root -> abuse
| | |-- mailer-daemon -> postmaster
| | |-- tany
| |
|-- services
| |
| |-- postfix
| |-- courier
|
|-- DNS
| |
| |-- localhost
| | |
| | |-@
| |
| |-- 0.0.127.in-addr.arpa
| |
| |-- @
| |-- 1
|
|-- mail
|
|-- transports
|
|-- karavay-shops.ru
|-- bridge.karavay-shops.ru
|-- localhos.tkaravay-shops.ru
|-- myvirtual.mydomain.com
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
Настройка и использование LDAP. Часть I.
Уже много статей написано на эту тему (даже на русском языке), но
именно с этого мне нужно начать, чтобы постепенно подойти к вопросу о
настройке почтовой системы.
Итак, ресурсы:
http://linux.yaroslavl.ru/docs/howto/ldap-howto/index.html
http://www.ldapzone.spb.ru/docs/ldap_art.phtml
http://www.ldapzone.spb.ru/docs/andrek.phtml
Говорить об использовании LDAP буду на примере настройки DNS.
Немного скажу о том что такое LDAP(Lightweight Directory Access
Protocol) - это служба каталогов, система хранения данных (storage) в
виде дерева, широко используется в текущее время в ОС Windows,
конкретно при реализации Active Directiory. Удобно тем, что всю
информацию о какой-либо системе можно представить в виде дерева со
структурой каталогов, внутри которых могут опять находится опять же
каталоги или же сами объекты. Например, информацию о компьютерной
системе можно представить следующим образом:
|
|-- admins
| |
| |-- MailAdmins
| |-- DNSAdmins
| |-- ...
|
|-- users
| |
| |-- user1
| |-- user2
| |-- OtherGroup
| | |
| | |-- user3
| | |-- user4
| | |-- ...
| |
| |-- ...
|
|-- services
| |
| |-- postfix
| |-- courier
| |-- bind
|
|-- hosts
|
|-- 127.0.0.1
|-- 192.168.2.1
|-- 192.168.2.11
|-- ...
У каждого объекта могут быть атрибуты (соответствующие классу/ам,
которому/ым принадлежит объект). Например, у пользователя такими
атрибутами являются: пароль доступа, почтовый акаунт, uid и gid и т.д.,
у хоста же - MAC-адрес, доменное имя.
Таким образом LDAP удобно использовать как ЕДИНОЕ место для
хранения информации, которая многократно может использоваться в
системе. Например, информация о пользователе может использоваться при
входе в сеть, при входе в компьютер, при получении почты, в системе
учета трафика (билинговой системе) и т.д. Т.е. каждая программа,
использующая эти схожие данные, должна иметь собственную базу данных,
что порождает избыточность и сложность администрирования. LDAP же
позволяет решить данную проблему (конечно, при правильном подходе к
данному вопросу), тем более что на данный момент производители
вышеперечисленных сервисов стараются включить (или уже включили) в свои
продукты поддержку LDAP.
В Linux за работу с LDAP отвечает пакет openldap (у меня версия
openldap-2.0.27-8)
В установке ничего сложного:
$ rpm -ihv openldap-2.0.27-8.i386.rpm
$ rpm -ihv openldap-servers-2.0.27-8.i386.rpm
$ rpm -ihv openldap-clients-2.0.27-8.i386.rpm
$ rpm -ihv openldap-devel-2.0.27-8.i386.rpm
devel-пакет я устанавливаю, что бы сделать возможной сборку других
программ с поддержкой LDAP.
Основой работы LDAP являются схемы - файлы описывающие классы
объектов, которыми может оперировать LDAP и их атрибуты. В стандартной
сборке openldap поставляется несколько ldap-схем
(/etc/openldap/schema/), достаточных для типичной работы сервера, но я
для большего понимания работы ldap и настройки системы конкретно под
себя, я создал свою схему. В качестве дополнительного пособия по
созданию схемы я использовал уже готовые схемы и набор rfc из комплекта
документации, поставляемой с openldap.
begin koal.schema # # Атрибуты объектов
# # Число перед "NAME" - OID - идентификатор объекта (?)
#
# Синоним акаунта почты, наследуется от "mail"
attributetype ( 1.3.6.1.4.1.10018.1.1.2 NAME 'mailAlias'
SUP mail )
# Адрес пересылки почты, наследуется от "mail"
attributetype ( 1.3.6.1.4.1.10018.1.1.3 NAME 'mailForward'
SUP mail )
# Квота на почтовый ящик, новый атрибут с OID (после SYNTAX),
# соответствующим числовому целому типу. SINGLE-VALUE, говорит о том,
# что атрибут может принимать, только одно значение (по умолчанию
# несколько (multi))
attributetype ( 1.3.6.1.4.1.10018.1.1.4 NAME 'mailQuota'
DESC 'A number that represents the quota on a mailbox'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
# Относительный путь до файла почтового ящика, строковый тип с длиной в
# 256 символов, нечувствительный к регистру
attributetype ( 1.3.6.1.4.1.10018.1.1.5 NAME 'mailBox'
DESC 'The relative path to the mailbox for a mail account in a non-default
location'
EQUALITY caseIgnoreIA5Match
SUBSTR caseIgnoreIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
# Абсолютный путь до почтовой директории, наследуется от "mailDirectory"
attributetype ( 1.3.6.1.4.1.10018.1.1.6 NAME 'mailDirectory'
SUP homeDirectory )
# Строка, содержащая правила доступа к почтового ящику.
attributetype ( 1.3.6.1.4.1.10018.1.1.7 NAME 'mailAccess'
DESC 'Access string'
EQUALITY caseIgnoreIA5Match
SUBSTR caseIgnoreIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
# Имя почтового домена
attributetype ( 1.3.6.1.4.1.10018.1.1.8 NAME 'mailDomain'
DESC 'A virtual mail domain'
EQUALITY caseIgnoreIA5Match
SUBSTR caseIgnoreIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
# Строка, содержащая транспорт почтовой системы
attributetype ( 1.3.6.1.4.1.10018.1.1.9 NAME 'mailTransport'
DESC 'transport for domain'
EQUALITY caseIgnoreIA5Match
SUBSTR caseIgnoreIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
# # Классы объектов
# # Класс, описывающий объект почтового акаунта, наследуется от класса
# "top", тип класса обычный (т.е. можно делать объекты данного класса,
# бывает еще абстрактный, от которого можно только наследовать, объект
# обязательно при создании ДОЛЖЕН содержать поля, перечисленные в MUST,
# и МОЖЕТ содержать поля, перечисленные в MAY
objectclass ( 1.3.6.1.4.1.10018.1.2.1 NAME 'mailAccount'
SUP top
STRUCTURAL
DESC 'mail account'
MUST ( mail $ mailAccess $ mailBox $ mailDirectory )
MAY ( mailAlias $ mailQuota $ mailForward ) )
# Класс, описывающий объекты получателей почты
objectclass ( 1.3.6.1.4.1.10018.1.2.2 NAME 'mailRecipient'
SUP top
STRUCTURAL
DESC 'mail account for forward'
MUST ( mailAlias $ mailAccess $ mailForward ) )
# Класс, описывающий объекты транспорта почтовой системы
objectclass ( 1.3.6.1.4.1.10018.1.2.3 NAME 'mailDomainTransport'
SUP top
STRUCTURAL
DESC 'Domain mail aliasing/transporting entry'
MUST ( mailDomain )
MAY ( mailTransport $ description ) )
end koal.schema за настройку работы сервера отвечает конфигурационный файл
/etc/openldap/slapd.conf
begin slapd.conf # Подключаем файлы схем
# Стандартные схемы
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/openldap.schema
# Моя схема
include /etc/openldap/schema/koal.schema
# Схема для обеспечения работы DNS (взята с сайта проекта соединяющего
# bind и ldap: http://www.venaas.no/ldap/bind-sdb/dnszone-schema.txt
include /etc/openldap/schema/dnszone.schema
# Секция ACL (access control list) разграничивающая правила доступа к
# элементам LDAP. Важен порядок в котором задаются правила. (ОСНОВНАЯ
# ОШИБКА ПРИ КОНФИГУРИРОВАНИИ)
# Дать возможность менять пароль авторизированным пользователям и
# администраторам
access to attr=userPassword
by dn=".*,cn=admin,dc=karavay-shops,dc=ru" write
by self write
by anonymous auth
# Дать доступ на запись ко всем элементам ldap администраторам из ветки
# cn=admin,dc=karavay-shops,dc=ru
access to *
by dn=".*,cn=admin,dc=karavay-shops,dc=ru" write
by * none
# Определение нового экземпляра базы данных на основе LDBM
database ldbm
# Основной суффикс данного экземпляра БД. Корневой объект root. Все
# запросы, заканчивающиеся на suffix будут переданы данному
# экземпляру БД
suffix "dc=karavay-shops,dc=ru"
# Отличительное имя, которое не подлежит контролю доступа или
# административным ограничениям при операциях в этой базе данных. Не
# требуется, чтобы отличительное имя ссылалось на элемент каталога.
# Иными словами - администратор данной БД, на которого не действую ACL
rootdn "cn=admin,dc=karavay-shops,dc=ru"
# Пароль администратора, можно указывать прямым текстом, или же
# сгенерировать с помощью утилиты slappasswd. Этот пароль используется
# даже в том случае, если у данного объекта в базе установлен другой
# пароль.
rootpw {SSHA}jeNRk8wLw4DYLdl+x+S8Z0dLECzYythQ
# Каталог, в котором находятся файлы, содержащие базу данных LDBM и
# связанные с ними индексные файлы
directory /var/lib/ldap
end slapd.conf Запуск ldap сервера можно организовать командой
$ /sbin/service ldap start
Также необходимо проверить запускается ли сервер автоматически при
старте системы:
$ /sbin/chkconfig --list ldap
И, если необходимо, включить автозапуск
$ /sbin/chkconfig --level 2345 ldap on
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
Настройка и использование 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