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

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

За 2004-03-03

Re: linuxовка

В Срд, 03.03.2004, в 15:58, Kolotov Alexandr пишет:

> Очередное сборище linuxового народа состоится на Театральной площади у
> сцены в пятницу в 19.00. Приглашаются все желающие.

Не смогу. :(

   "Konstantin A. Shchekotoff" 2004-03-03 20:15:30 (#95912)

linuxовка

Очередное сборище 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

   2004-03-03 16:29:59 (#95748)

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

Настройка и использование 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

   2004-03-03 14:58:17 (#95697)

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

Настройка и использование 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

   2004-03-03 10:31:08 (#95541)

Чтиво: установка сервера часть 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

   2004-03-03 10:30:01 (#95539)