Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> программы —> Samba(PDC) + Ldap

Настройка Samba для хранения информации в LDAP

Автор: fr33man.


Эта статья даже не обновление предыдущей статьи, а совершенно новая статья, написанная в процессе настройке самбы в качестве PDC.

Итак, приступим к настройке. Для начала обновляем порты:

laptop# portsnap fetch update
Looking up portsnap.FreeBSD.org mirrors... 2 mirrors found.
Fetching snapshot tag from portsnap2.FreeBSD.org... done.
Fetching snapshot metadata... done.
Updating from Thu Mar 15 22:26:19 MSK 2007 to Fri Mar 16 18:40:05 MSK 2007.
Fetching 3 metadata patches.. done.
Applying metadata patches... done.
Fetching 0 metadata files... done.
Fetching 76 patches.....10....20....30....40....50....60....70... done.
Applying patches... done.
Fetching 4 new ports or files... done.
Removing old files and directories... done.
Extracting new files:
/usr/ports/archivers/pbzip2/
/usr/ports/astro/starplot/
/usr/ports/audio/abcmidi/

... skipped ...

Building new INDEX files... done.
laptop#

1. Установка и настройка openldap.

Ставим openldap-server:

laptop# cd /usr/ports/net/openldap23-server/
laptop# make config
---------------------------------------------------------------------¬
¦                Options for openldap-server 2.3.25                  ¦
¦ -----------------------------------------------------------------¬ ¦
¦ ¦ [ ] SASL              With (Cyrus) SASL2 support               ¦ ¦
¦ ¦ [ ] PERL              With Perl backend                        ¦ ¦
¦ ¦ [ ] SHELL             With Shell backend (disables threading)  ¦ ¦
¦ ¦ [ ] ODBC              With SQL backend                         ¦ ¦
¦ ¦ [ ] SLP               With SLPv2 (RFC 2608) support            ¦ ¦
¦ ¦ [ ] SLAPI             With Netscape SLAPI plugin API           ¦ ¦
¦ ¦ [X] TCP_WRAPPERS      With tcp wrapper support                 ¦ ¦
¦ ¦ [X] BDB               With BerkeleyDB support                  ¦ ¦
¦ ¦ [ ] ACCESSLOG         With In-Directory Access Logging overlay ¦ ¦
¦ ¦ [ ] AUDITLOG          With Audit Logging overlay               ¦ ¦
¦ ¦ [ ] DENYOP            With Deny Operation overlay              ¦ ¦
¦ ¦ [ ] DYNGROUP          With Dynamic Group overlay               ¦ ¦
¦ ¦ [ ] DYNLIST           With Dynamic List overlay                ¦ ¦
¦ ¦ [ ] LASTMOD           With Last Modification overlay           ¦ ¦
¦ ¦ [ ] PPOLICY           With Password Policy overlay             ¦ ¦
¦ ¦ [ ] PROXYCACHE        With Proxy Cache overlay                 ¦ ¦
¦ ¦ [ ] REFINT            With Referential Integrity overlay       ¦ ¦
¦ ¦ [ ] RETCODE           With Return Code testing overlay         ¦ ¦
¦ ¦ [ ] RWM               With Rewrite/Remap overlay               ¦ ¦
¦ ¦ [ ] SYNCPROV          With Syncrepl Provider overlay           ¦ ¦
¦ ¦ [ ] TRANSLUCENT       With Translucent Proxy overlay           ¦ ¦
¦ ¦ [ ] UNIQUE            With attribute Uniqueness overlay        ¦ ¦
¦ ¦ [ ] VALSORT           With Value Sorting overlay               ¦ ¦
¦ ¦ [ ] ACI               With per-object ACIs (experimental)      ¦ ¦
¦ ¦ [X] DYNAMIC_BACKENDS  Build dynamic backends                   ¦ ¦
¦ ¦ [X] SLURPD            Build slurpd replication daemon          ¦ ¦
+-L-----v(+)---------------------------------------------------------+
¦                       [  OK  ]       Cancel                        ¦
L---------------------------------------------------------------------

laptop# make install clean

... skipped ...

laptop# rehash
laptop#

Теперь необходимо составить конфигурационный файл ldap сервера

/usr/local/etc/openldap/slapd.conf:
# Подключаем схемы, основная схема -- core.schema, она обязательна!!
include         /usr/local/etc/openldap/schema/core.schema

include         /usr/local/etc/openldap/schema/cosine.schema
include         /usr/local/etc/openldap/schema/inetorgperson.schema
include         /usr/local/etc/openldap/schema/misc.schema
include         /usr/local/etc/openldap/schema/nis.schema
include         /usr/local/etc/openldap/schema/openldap.schema

# Pid-файл
pidfile         /var/run/openldap/slapd.pid

# Файл с аргумнтами, которые были переданы slapd
argsfile        /var/run/openldap/slapd.args

# Путь к модулям
modulepath      /usr/local/libexec/openldap

# подгружаем модуль ldbm
moduleload      back_ldbm

# описываем доступ к информации
# указываем, что к аттрибуту userPassword
# себе(под кем Вы находитесь в системе)
# разрешена запись, анонимам предлагается
# зарегистрироваться, остальным пройти идти лесом. ))

access to attrs=userPassword
        by self write
        by anonymous auth
        by * none

# Доступ к остальной информации: себе -- писать, анонимам читать, остальным ничего.
access to *
        by self write
        by anonymous read
        by * none

# Примечание: пользователю cn=root,dc=l1523,dc=ru разрешена запись и чтение всего!

# Тип базы
database        ldbm

# Корень базы
suffix          "dc=l1523,dc=ru"

# dn администратора ldap
rootdn          "cn=root,dc=l1523,dc=ru"

# пароль администратора
# генерируется командой slappasswd
# Я сгенерировал так:
# laptop# slappasswd
# New password:
# Re-enter new password:
# {SSHA}KjFZSWPFXXrL4pLyQRsUleVA1J75WESF
# laptop#
# Пароль рута: password
rootpw          {SSHA}KjFZSWPFXXrL4pLyQRsUleVA1J75WESF

# директория, где будут храниться базы
directory       /var/db/openldap-data

# уровень отладки
loglevel        256

# Индексы, для ускорения поиска по базе
index   objectClass     eq
index   cn              eq

Теперь настраиваем запуск slapd и запускаем:

По просьбам трудящихся: восклицательный знак означает, что строка перенесена. Его не нужно копировать в rc.conf. ))


laptop# echo slapd_enable=\"YES\" >> /etc/rc.conf
laptop# echo slapd_flags=\'-h \"ldapi://%2fvar%2frun%2fopenldap%2fldapi/ \
? ldap://0.0.0.0/ ldap://127.0.0.1/\"\' >> /etc/rc.conf
laptop# mv /usr/local/etc/rc.d/slapd /usr/local/etc/rc.d/slapd.sh
laptop# /usr/local/etc/rc.d/slapd.sh start
Starting slapd.
laptop# ps ax | grep slap
11383  ??  Ss     0:00,01 /usr/local/libexec/slapd -h ldapi://%2fvar
11385  p2  RV     0:00,00 grep slap (csh)
laptop#

2. Добавление данных в ldap.

Первым делом необходимо добавить корневой объект: dn: dc=l1523,dc=ru. И несколько контейнеров для хранение пользователей(ou=users), компьютеров(ou=computers) и групп(ou=groups). Вот такой ldif файл необходимо добавить в ldap:

base.ldif:
dn: dc=l1523,dc=ru
objectClass: dcObject
objectClass: organization
objectClass: top
dc: l1523
o: l1523

dn: ou=users,dc=l1523,dc=ru
objectClass: top
objectClass: organizationalUnit
ou: users

dn: ou=groups,dc=l1523,dc=ru
objectClass: top
objectClass: organizationalUnit
ou: groups

dn: ou=computers,dc=l1523,dc=ru
objectClass: top
objectClass: organizationalUnit
ou: computers

Теперь добавляем:

laptop# ldapadd -x -D "cn=root,dc=l1523,dc=ru" -w password -f base.ldif
adding new entry "dc=l1523,dc=ru"

adding new entry "ou=users,dc=l1523,dc=ru"

adding new entry "ou=groups,dc=l1523,dc=ru"

adding new entry "ou=computers,dc=l1523,dc=ru"

laptop#

Записи вроде добавились. Давайте попробуем поискать:

laptop# ldapsearch -LLL -x -b 'dc=l1523,dc=ru' '*'
dn: dc=l1523,dc=ru
objectClass: dcObject
objectClass: organization
objectClass: top
dc: l1523
o: l1523

dn: ou=users,dc=l1523,dc=ru
objectClass: top
objectClass: organizationalUnit
ou: users

dn: ou=groups,dc=l1523,dc=ru
objectClass: top
objectClass: organizationalUnit
ou: groups

dn: ou=computers,dc=l1523,dc=ru
objectClass: top
objectClass: organizationalUnit
ou: computers

laptop#

Да, все хорошо.

3. Добавление пользователей в ldap.

После этого устанавливаем nss_ldap, для того, чтобы система могла искать пользователей в ldap:

laptop# cd /usr/ports/net/nss_ldap/
laptop# make install clean

... skipped ...

laptop# rehash
laptop#

Составим конфиг для nss_ldap

/usr/local/etc/nss_ldap.conf:
# Корневой каталог LDAP сервера
base dc=l1523,dc=ru

# Если не удалось подключиться к LDAP,
# То не пытаться переподключиться
bind_policy soft

# Timeout подключения к LDAP серверу
bind_timelimit 10

# ip-адрес или hostname LDAP сервера
host localhost

# nss_ldap закроет подключение, если сервер
# не ответит в указонное в idle_timelimit время
idle_timelimit 3600

# Версия протокола
ldap_version 3

# Описание каталогов, где хранятся группы, пользователи, пароли соответственно
nss_base_group  ou=groups,dc=l1523,dc=ru?one
nss_base_passwd ou=users,dc=l1523,dc=ru?one
# Следущая строку нужна для samb'ы, так как аккаунты
# компьютеров должны быть видны системе
nss_base_passwd ou=computers,dc=l1523,dc=ru?one
nss_base_shadow ou=users,dc=l1523,dc=ru?one

# persist -- не отключаться от LDAP сервера
# oneshot -- отключаться после каждого запроса
nss_connect_policy persist

# Использовать страничный вывод
nss_paged_results yes

# Размер страницы
pagesize 1000

# Порт, на котором работает LDAP
port 389

# Область поиска
scope one

# Время ожидпния при поиске
timelimit 30

И последний штрих - редактирование

/etc/nsswitch.conf:
group: files ldap
hosts: files dns
networks: files
passwd: files ldap
shadow: files ldap
shells: files

Теперь, для своего удобства установим набор скриптов, которые будут работать с пользователями, которые храняться в ldap:

laptop# cd /usr/ports/net/ldapscripts/
laptop# make install clean

... skipped ...

laptop# rehash
laptop#

Составляем конфигурационный файл для скриптов:

/usr/local/etc/ldapscripts/ldapscripts.conf:
## Мой конфиг для скриптов.

# Конфигурация соединения с ldap сервером.
SERVER="localhost"
BINDDN="cn=root,dc=l1523,dc=ru"
BINDPWD="password"

SUFFIX="dc=l1523,dc=ru" # корень базы
GSUFFIX="ou=groups" # контейнер, где храняться группы(относительно корня)
USUFFIX="ou=users" # то же, но для юзеров
MSUFFIX="ou=computers" # и для компов

# начальные значения gid, ud.
GIDSTART="10000" # Group ID
UIDSTART="10000" # User ID
MIDSTART="20000" # Machine ID

# настройки для пользователей
USHELL="/usr/sbin/nologin"
UHOMES="/home/%u" # хомяк пользователя. вместо %u будет подставлено имя пользователя
ASKGECOS="no"     # Спрашивать пользователя полное имя или нет.
CREATEHOMES="yes"  # создаем хомяки пользователей
HOMESKEL="/etc/skel"  # где брать начальные настройки пользователей

# Генерируем пароль пользователю.
# На самом деле это одна строка, просто не умещается...
PASSWORDGEN="head -c8 /dev/random | uuencode -m - | sed -n -e 
'2s|=*$||;2p' | sed -e 's|+||g' -e 's|/||g'"

# Записываем сгенерированный пароль в файл.
RECORDPASSWORDS="yes"
PASSWORDFILE="/var/log/ldapscripts_passwd.log"

# лог файл
LOGFILE="/var/log/ldapscripts.log"

# Где находятся утилиты управления ldap сервером
LDAPSEARCHBIN="/usr/local/bin/ldapsearch"
LDAPADDBIN="/usr/local/bin/ldapadd"
LDAPDELETEBIN="/usr/local/bin/ldapdelete"
LDAPMODIFYBIN="/usr/local/bin/ldapmodify"
LDAPMODRDNBIN="/usr/local/bin/ldapmodrdn"
LDAPPASSWDBIN="/usr/local/bin/ldappasswd"

# Заставляем скрипты самим определять команду 
# для просмотра информации о пользователях
GETENTPWCMD=""
GETENTGRCMD=""

Теперь попробуем добавить группы(для админов, для пользователей и компьютеров) и пользователей(админа и тестового пользователя):

laptop# ldapaddgroup admins
Successfully added group admins to LDAP
laptop# ldapaddgroup people
Successfully added group people to LDAP
laptop# ldapaddgroup computers
Successfully added group computers to LDAP
laptop# ldapadduser testuser people
Successfully added user testuser to LDAP
Successfully set password for user testuser
Successfully created home directory for user testuser
laptop# ldapadduser admin admins
Successfully added user admin to LDAP
Successfully set password for user admin
Successfully created home directory for user admin
laptop# ls -lad /home/admin/
drwx------  2 admin  admins  512 16 мар 20:16 /home/admin/
laptop# id admin
uid=10001(admin) gid=10001(admins) groups=10001(admins)
laptop# id testuser
uid=10002(testuser) gid=10002(people) groups=10002(people)
laptop#

Как видите, пользователей которых мы добавили в Ldap прекрасно видны системе. Давайте посмотрим их пароли:

laptop# cat /var/log/ldapscripts_passwd.log
uid=admin,ou=users,dc=l1523,dc=ru : CVqh3dFxuEU
uid=testuser,ou=users,dc=l1523,dc=ru : vUUqzopbglI
laptop#

Вот и пароли наших пользователей. На этой счастливой ноте заканчиваем с настройкой ldap и переходим к настройке самбы.

4. Установка и настройка самбы.

Сразу скажу, что ставить нужно версию не ниже 3.0.23d. Ставить можно версию и ниже, но схему для ldap(samba.schema) необходимо брать от последней версии, так как старые версии схемы не позволяли самбе увидеть группы. Итак, ставим:

laptop# cd /usr/ports/net/samba3/
laptop# make config
---------------------------------------------------------------------¬
¦                    Options for samba 3.0.22,1                      ¦
¦ -----------------------------------------------------------------¬ ¦
¦ ¦ [X] LDAP          With LDAP support                            ¦ ¦
¦ ¦ [ ] ADS           With Active Directory support                ¦ ¦
¦ ¦ [X] CUPS          With CUPS printing support                   ¦ ¦
¦ ¦ [X] WINBIND       With WinBIND support                         ¦ ¦
¦ ¦ [ ] ACL_SUPPORT   With ACL support                             ¦ ¦
¦ ¦ [ ] AIO_SUPPORT   With experimental AIO support                ¦ ¦
¦ ¦ [ ] SYSLOG        With Syslog support                          ¦ ¦
¦ ¦ [X] QUOTAS        With Quota support                           ¦ ¦
¦ ¦ [X] UTMP          With UTMP support                            ¦ ¦
¦ ¦ [ ] MSDFS         With MSDFS support                           ¦ ¦
¦ ¦ [ ] SAM_XML       With XML smbpasswd backend                   ¦ ¦
¦ ¦ [ ] SAM_MYSQL     With MYSQL smbpasswd backend                 ¦ ¦
¦ ¦ [ ] SAM_PGSQL     With PostgreSQL smbpasswd backend            ¦ ¦
¦ ¦ [ ] SAM_OLD_LDAP  With Samba2.x LDAP legacy smbpasswd backend  ¦ ¦
¦ ¦ [ ] SMBSH         With SMBSH wrapper for UNIX commands         ¦ ¦
¦ ¦ [ ] PAM_SMBPASS   With SMB PAM module                          ¦ ¦
¦ ¦ [ ] EXP_MODULES   With experimental module(s)                  ¦ ¦
¦ ¦ [X] POPT          With system-wide POPT library                ¦ ¦
+-L-----v(+)---------------------------------------------------------+
¦                       [  OK  ]       Cancel                        ¦
L---------------------------------------------------------------------
     
laptop# make install clean

... skipped ...

laptop# rehash
laptop# 

Скопируем схему samba.schema в /usr/local/etc/openldap/schema/:

laptop# cp /usr/local/share/examples/samba/LDAP/samba.schema \
? /usr/local/etc/openldap/schema/
laptop#

И добавим в /usr/local/etc/openldap/slapd.conf строку:

include         /usr/local/etc/openldap/schema/samba.schema

И перезапустим ldap:

laptop# /usr/local/etc/rc.d/slapd.sh restart
Stopping slapd.
Waiting for PIDS: 11383.
Starting slapd.
laptop# ps ax | grep slap
44603  ??  Ss     0:00,01 /usr/local/libexec/slapd -h ldapi://%2fvar%2frun%2fop
laptop#

Теперь составляем конфиг самбы:

[global]

   # Имя домена
   workgroup = teachers
   
   # nebios имя машины
   netbios name = spider

   # Описание сервера
   server string = Documents

   # Тип безопасности user(необходимо для PDC)
   security = user

   # Хосты, которым разрешено обращаться к нашему серверу
   hosts allow = 192.168.1. 127.

   # Не использовать принтеры
   load printers = no

   # Лог файл самбы
   log file = /var/log/samba/log.%m

   # Максимальный размер лога
   max log size = 500

   # Использовать зашированные пароли
   encrypt passwords = yes
   
   # Администратор домена
   admin users = admin

   # Пароли храним в LDAP
   passdb backend = ldapsam:ldap://localhost/

    # Корень LDAP сервера
    ldap suffix = dc=l1523,dc=ru
	
    # Пользователи храняться в контейнере ou=users
    ldap user suffix = ou=users
	
    # Группы в контейнере ou=groups
    ldap group suffix = ou=groups
	
    # Контейнер для машин пользователей
    ldap machine suffix = ou=computers
	
    # Объект администратора samb'ы в LDAP
    ldap admin dn = "cn=root,dc=l1523,dc=ru"
	
    # Запрещаем удалять объекты
    ldap delete dn = no

    # Отключаем поддержку SSL
    ldap ssl = off


   # Сетевые параметры
   socket options = TCP_NODELAY


   # Делаем из samb'ы PDC
   local master = yes
   os level = 64
   domain master = yes
   preferred master = yes
   domain logons = yes

   # Скрипт, который запустится при входе пользователя
   logon script = proxy.vbs

   # Сетевой путь, который необходимо подключить
   logon path = \\%L\Profiles\%U\%m\
   logon home = \\%L\Profiles\%U\%m\
	
    # Имя диска, на который подключать
    logon drive = Z:

    # Поддержка wins
    wins support = yes

    # Не используем dns proxy
    dns proxy = no

    # Настройка кодировки
    display charset = koi8-r
    unix charset = koi8-r
    dos charset = cp866

    # Пусть samb'а еще и время отдает
    time server = yes

    # Скрипт, для добавления машин
    add machine script = /usr/local/bin/ldapaddmachine '%u' computers
    add user script = /usr/local/bin/ldapadduser '%u' people
    add group script = /usr/local/bin/ldapaddgroup '%g'
    add user to group script = /usr/local/bin/ldapaddusertogroup '%u' '%g'
    delete user script = /usr/local/bin/ldapdeleteuser '%u'
    delete group script = /usr/local/bin/ldapdeletegroup '%g'
    delete user from group script = /usr/local/bin/ldapdeleteuserfromgroup '%u' '%g'
    set primary group script = /usr/local/bin/ldapsetprimarygroup '%u' '%g'
    rename user script = /usr/local/bin/ldaprenameuser '%uold' '%unew'

# Описание расшаренных директорий
[homes]
   comment = Home Directories
   browseable = no
   writable = yes

 [netlogon]
   comment = Network Logon Service
   path = /usr/local/etc/samba/netlogon/
   guest ok = yes
   writable = no
   share modes = no
   browseable = no

[Profiles]
    create mode = 600
    directory mode = 700
    path = /home
    browseable = no
    guest ok = yes
 
[data]
    comment = Dump of files
    path = /data
    create mode = 660
    directory mode = 770
    public = yes
    writeable = yes
    write list = @people
    read list = @people

Все, с конфигом разобрались.

Укажем самбе пароль от пользователя в ldap(cn=root,dc=l1523,dc=ru):

laptop# smbpasswd -w password
Setting stored password for "cn=root,dc=l1523,dc=ru" in secrets.tdb
laptop#

И добавляем наших пользователей в ldap:

laptop# smbpasswd -a admin
New SMB password:
Retype new SMB password:
Added user admin.
laptop# smbpasswd -a testuser
New SMB password:
Retype new SMB password:
Added user testuser.
laptop#

Давайте посмотрим что там smbpasswd в ldap добавила:

laptop# ldapsearch -LLL -x -b 'dc=l1523,dc=ru' 'uid=testuser'
dn: uid=testuser,ou=users,dc=l1523,dc=ru
objectClass: account
objectClass: posixAccount
objectClass: sambaSamAccount
cn: testuser
uid: testuser
uidNumber: 10002
gidNumber: 10002
homeDirectory: /home/testuser
loginShell: /usr/sbin/nologin
gecos: testuser
description: User account
sambaSID: S-1-5-21-1909399157-655202441-2345705920-21004
displayName: testuser
sambaPwdCanChange: 1174068299
sambaPwdMustChange: 2147483647
sambaLMPassword: 44EFCE164AB921CAAAD3B435B51404EE
sambaNTPassword: 32ED87BDB5FDC5E9CBA88547376818D4
sambaPasswordHistory: 00000000000000000000000000000000000000000000000000000000
 00000000
sambaPwdLastSet: 1174068299
sambaAcctFlags: [U          ]

laptop#

Как видите, самбы добавила свои переменные.

Теперь добавим доменные группы:

laptop# net groupmap add unixgroup=admins rid=512 type=domain
Successfully added group admins to the mapping db as a domain group
laptop# net groupmap add unixgroup=people rid=513 type=domain
Successfully added group people to the mapping db as a domain group
laptop# net groupmap add unixgroup=computers rid=515 type=domain
Successfully added group computers to the mapping db as a domain group
laptop# net groupmap list
admins (S-1-5-21-1909399157-655202441-2345705920-512) -> admins
people (S-1-5-21-1909399157-655202441-2345705920-513) -> people
computers (S-1-5-21-1909399157-655202441-2345705920-515) -> computers
laptop# ldapsearch -LLL -x -b 'dc=l1523,dc=ru' 'cn=admins'
dn: cn=admins,ou=groups,dc=l1523,dc=ru
objectClass: posixGroup
objectClass: sambaGroupMapping
cn: admins
gidNumber: 10001
sambaSID: S-1-5-21-1909399157-655202441-2345705920-512
sambaGroupType: 2
displayName: admins
description: Domain Unix group
laptop#

Как видите, самба добавила свои аттрибуты к группам.

Создаем каталог, где будут лежать стартовые скрипты:

laptop# mkdir /usr/local/etc/samba/netlogon
laptop# cd /usr/local/etc/samba/netlogon
laptop#

И создаем скрипт, который будет прописывать пользователям прокси сервер при входе в домен:

laptop# cat > proxy.vbs
set wshShell = Wscript.CreateObject("WScript.Shell")
prefix = "HKEY_CURRENT_USER\Software\Microsoft\Windows\
CurrentVersion\Internet Settings\"
wshShell.regWrite prefix & "ProxyServer", "shield:3128"
wshShell.regWrite prefix & "ProxyEnable", 1
laptop# chmod +x proxy.vbs
laptop#

Теперь запускаем самбу:

laptop# echo samba_enable=\"YES\" >> /etc/rc.conf
laptop# mv /usr/local/etc/rc.d/samba /usr/local/etc/rc.d/samba.sh
laptop# /usr/local/etc/rc.d/samba.sh start
Removing stale Samba tdb files:  done
Starting nmbd.
Starting smbd.
laptop# ps ax | grep mbd
44647  ??  Ss     0:00,00 /usr/local/sbin/nmbd -D -s /usr/local/etc/smb.conf
44651  ??  Ss     0:00,01 /usr/local/sbin/smbd -D -s /usr/local/etc/smb.conf
44653  ??  S      0:00,00 /usr/local/sbin/smbd -D -s /usr/local/etc/smb.conf
laptop#

Усе, теперь попробуем добавить windows машину в домен.

5. Добавление машины в домен.

На виндовой машине кликаем правой кнопкой мыши на "Мой компьютер", потом идем во вкладку "Имя компьютера", потом кликаем на кнопке изменить и выбирем ввести в домен и вводим имя домена. Кликаем ок и... "Добро пожаловать в домен teachers" ;). Давайте посмотрим добавилась ли учетная запись компьютера:

laptop# ldapsearch -LLL -x -b 'dc=l1523,dc=ru' 'uid=vasya$'
dn: uid=vasya$,ou=computers,dc=l1523,dc=ru
objectClass: account
objectClass: posixAccount
objectClass: sambaSamAccount
cn: vasya$
uid: vasya$
uidNumber: 20001
gidNumber: 10003
homeDirectory: /dev/null
loginShell: /bin/false
gecos: vasya$
description: Machine account
sambaSID: S-1-5-21-1909399157-655202441-2345705920-1001
displayName: vasya$
sambaAcctFlags: [W          ]
sambaPwdCanChange: 1174068450
sambaPwdMustChange: 2147483647
sambaNTPassword: 70088D0D1ED0544A04D8AE5898C21055
sambaPwdLastSet: 1174068450

laptop#

Давайте посмотрим информацию о домене:

laptop# net rpc info -U admin
Password:
Domain Name: TEACHERS
Domain SID: S-1-5-21-1909399157-655202441-2345705920
Sequence number: 1174070406
Num users: 2
Num domain groups: 3
Num local groups: 0
laptop#

Ну вот, самба все и всех видит и нормально работает.
На этом я пожалуй закончу... А то время позднее. ))

6. Используемая литература:

- Samba
- Google
- OpenLDAP
- FreeBSD
- Samba + LDAP
- Ldap auth
- Основы LDAP

P.S. Если найдете баги — пишите. С радостью подправлю свою статью.
P.S.2 Здесь можно найти архивчик со всеми конфигами, которые я затронул в данной статье.



размещено: 2007-03-16,
последнее обновление: 2008-03-13,
автор: fr33man


abigor, 2007-03-17 в 7:45:12

статья супер, обязательно попробую, так как есть необходимость в домене на samba
только, я бы еще предложил сделать шарку для IPC пусть будет, чтоб винде нормально жилось =)
[IPC$]
path = /tmp
hosts allow = 192.168.1.0/24, 127.0.0.1
hosts deny = 0.0.0.0/0

Artem Za..., 2007-03-18 в 18:20:11

Еще бы можно сделат net join самого контроллера домена, т.к. при подключении машины к самбе у меня вылетала ошибка в логах smbd, типа домен не доступен!

fr33man, 2007-03-18 в 19:21:15

Честное слово, сколько самбу не юзал, никогда ее в себя же не загонял.. И все работало. Ну, сейчас к сожалению подправить не могу, ноута под рукой нет, а вот завтра посмотрим.. )))

Если есть инфа зачем ее в себя же загонять — кинься ссылкой plz.

Artem Za..., 2007-03-19 в 10:27:10

SAMBA PDC + LDAP on Gentoo

Вот цитата
Введём пароль рабочей станции:

smbpasswd -w secret


Введём контроллёр домена, собственно в домен

net rpc join -S neptun -U Administrator


После прокуривания логов и статей я понял что это нужно для коректной работы WINBIND.

nikosias, 2007-03-20 в 14:27:57

самое главное что в этой статье сказали что схему самбы тоже копировать надоть, скока я с этим намучился :(

yolkov, 2007-03-23 в 12:34:51

laptop# ldapadd -x -D "cn=root,dc=l1523,dc=ru" -w password -f base.ldif
все время пищет ldap_bind: Can't contact LDAP server (-1)

yolkov, 2007-03-23 в 13:58:21

исправил в rc.conf следуещее
slapd_flags="-h 'ldap://127.0.0.1'"
усе заработало

fr33man, 2007-03-24 в 20:19:56

Сори, сейчас подправлю..

pedro, 2007-03-27 в 1:14:16

> laptop# mv /usr/local/etc/rc.d/slapd /usr/local/etc/rc.d/slapd.sh

Странный шаг однако! Зачем было переименовывать скрыпт в .sh? Это-же ломает схему загрузки при помощи rc.subr!

lissyara, 2007-03-27 в 8:46:18

Некооректное обновление от 6.0, видимо.
Сам таким страдал, пока не догадался mergemaster запустить :))

yolkov, 2007-03-27 в 15:30:02

nss_base_passwd ou=users,dc=l1523,dc=ru?one
# Следущая строку нужна для samb'ы, так как аккаунты
# компьютеров должны быть видны системе
nss_base_passwd ou=computers,dc=l1523,dc=ru?one

так и должно быть? т.е. 2 раза nss_base_passwd или это опечатка?

Ant, 2007-04-04 в 14:44:03

Плиз поправьте ссылочку на конфиги

fr33man, 2007-04-04 в 18:44:04

>nss_base_passwd ou=users,dc=l1523,dc=ru?one
># Следущая строку нужна для samb'ы, так как аккаунты
># компьютеров должны быть видны системе
>nss_base_passwd ou=computers,dc=l1523,dc=ru?one

>так и должно быть? т.е. 2 раза nss_base_passwd или это >опечатка?

Нет, не опечатка. Так и нужно.

magius, 2007-04-17 в 16:35:41

Припопытке добавить пользователей в первый раз вылетело следующее
Retype new SMB password:
account_policy_get: tdb_fetch_uint32 failed for field 1 (min password length), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 2 (password history), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 3 (user must logon to change password), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 4 (maximum password age), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 5 (minimum password age), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 6 (lockout duration), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 7 (reset count minutes), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 8 (bad lockout attempt), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 9 (disconnect time), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 10 (refuse machine password change), returning 0
Added user magius.
при следующем добавлении такого не было...

hamelion, 2007-05-01 в 18:35:06

Помогите пожалуйста, при добавлении пользователей в лдап вылазит вот такая штука:
ldapaddgroup admins
Successfully added group admins to LDAP
root@test-server:/var/log# ldapaddgroup people
Successfully added group people to LDAP
root@test-server:/var/log# ldapaddgroup computers
Successfully added group computers to LDAP
root@test-server:/var/log# ldapadduser testuser people
Cannot resolve group people to gid : groupname not found


В чем может быть проблема? все делал согласно инструкции

hamelion, 2007-05-02 в 18:07:10

извините, нашел ошибку

Doger, 2007-05-14 в 17:44:02

При входе в домен пишет что нет профиля, в ччем трабла

VseDoFeNi, 2007-05-28 в 16:51:25

Нашел косяк в smb.conf.
в статье:
# Сетевой путь, который необходимо подключить
 logon path = \\%L\Profiles\%U\%m\
 logon home = \\%L\Profiles\%U\%m\
надо:
# Сетевой путь, который необходимо подключить
 logon home = \\%L\Profiles\%U\%m\
 logon path = \\%L\Profiles\%U\%m\

ashgdw, 2007-05-31 в 17:45:23

Сколько же нужно это раз повторить, что бы проникнуть в суть, что бы делать подобное на автоматизме... ((

Maryan, 2007-06-06 в 2:08:36

вся подборка статей об ЛДАПе просто супер, для человеков и по-человечески. Автору огромный респект.
Я проделывал все эти шаманства с связкой ЛДАП+САМБА(PDC) в декабре 2006г. Перелопатил массу информации, которая зачастую противоречила сама себе. В итоге все сделал по мануалу с сайта idealx.org. Теперь читаю и улыбнуло, насколько все просто. Всем советую взять этот мануал за первоисточник, делать все пошагово и вдумчиво. И будет вам счастье.

Maryan, 2007-06-06 в 2:12:58

пожелание автору, опиши, доходчиво и для людей (в присущем тебе стиле)процедуру ввода линуксовой рабочей станции (скажем Fedora, SuSE, AСП и пр.) в домен самбы с авторизацией в ЛДАПе

spmn, 2007-06-22 в 6:03:20

Столкнулся я с такой штукой:
smbpasswd -a ЮЗЕР говорило:
ldapsam_add_sam_account: failed to modify/add user with uid = ЮЗЕР (dn = uid=admin,ou=users,dc=l1523,dc=ru)
Failed to add entry for user ЮЗЕР.
Failed to modify password entry for user ЮЗЕР

Долго бился-мучался, оказывается,
схема для самбы, скопированная из примеров, должна расположатся после схемы inetorgperson.schema т.к. выяснилось что первая связанная со второй путем переменной displayName

После этого smbpasswd -a ЮЗЕР - нормально прохавалось ...

Это я так к слову ...

KaMa-CyTpA, 2007-07-09 в 14:55:37

А не имело ли смысл на данную машину ещё и ДНС-сервер поставить и сервер времени? Чтобы уже всё крутилось на ней - просто я думаю что ДНС был бы тут уместен. ИМХО.

cj_nik, 2007-07-09 в 16:44:51

Если уж домен для корпоративки то желательно добавить
DNS, DDNS+DHCP, + описать как потом рулить пользователями и группами через микрософтский SRVMGR.EXE и USRMGR.EXE

KaMa-CyTpA, 2007-07-11 в 16:00:10

По поводу управления пользователями по идее должен подойти DameWare - я ещё не пробовал правда сам.
Или выгрызть из http://www.bslos.com/docs.html
Там веб-мордашка прикручена.
Думаю Господину fr33man-у это труда не составит с его знаниями.
Ещё раз респект за статью!

serggn, 2007-07-27 в 10:26:26

>root@test-server:/var/log# ldapadduser testuser people
>Cannot resolve group people to gid : groupname not >found
>В чем может быть проблема? все делал согласно >инструкции
>извините, нашел ошибку

ХМ.. А в чем грабли, написать трудно ?

serggn, 2007-07-27 в 11:25:20

в итоге не был поставлен nss_ldap, не внимательно...

Fedot, 2007-08-02 в 15:47:29

Один только вопрос возник .пока что.
Почему именно back_ldbm?
и для чего тогда собирать с поддержкой bdb?

Судя по этому ответу ldbm является проблематичным (не спрашивайте в чем) и будет удален из релиза 2.4.

Андрей, 2007-09-25 в 14:32:43

Просто предположение, что при добавлении доменных груп неплохо бы соотнести юниксовые группы с нтшными
net groupmap add ntgroup="Domain Admins" unixgroup=admins rid=512 type=domain
->
net groupmap add ntgroup="Domain Admins" unixgroup=admins rid=512 type=domain

типа такого

Андрей, 2007-09-25 в 14:45:23

Сделал все по доке. При добавлении пользователей через ldapadduser заводится только системный пользователь и запись в каталоге. Что бы все это работало нужно еще задавать дополнительные параметры типа: sambaHomePath, sambaHomeDrive,sambaDomain.. вообще все что касается объекта sambaSAMAccount. Как это все автоматизировать?

Андрей, 2007-10-09 в 12:24:17

Добавь в конфиг шары профилей строчки
map hidden = yes
map system = yes
create mask = 777

У меня без этого атрибуты файлов типа Скрытый и Системный не сохранялись. Соответвенно при загрузке профиля на новом компе всюду появлялись desktop.ini и прочий шлак..

helgy, 2007-10-09 в 14:34:28

"И последний штрих - редактирование

/etc/nsswitch.conf:"

Должен заметить, что для того, чтобы подхватились изменения в /etc/nsswitch.conf, может понадобиться перезагрузить систему. Иначе у меня вылезали сообщения вида "Cannot resolve group people to gid : groupname not found", как у hamelion'a.

helgy, 2007-10-09 в 17:09:59

И ещё. возможно я что-то упустил при настройке, но этап "Теперь добавим доменные группы:" у меня пошёл только после того, как я соответствующие группы прописал в /etc/group.

Neteru, 2007-10-12 в 18:19:55

В статье допущена СЕРЬЕЗНАЯ ОШИБКА !!!
Как только разберусь сообщю!

Rom, 2007-10-14 в 18:18:12

hamelion  > поделись, где ошибку нашёл?
root@test-server:/var/log# ldapadduser testuser people
Cannot resolve group people to gid : groupname not found

den, 2007-10-25 в 10:30:32

действовал по инструкции и ставил ldap на свежий установленый по минималке freebsd в итоге ldap не запускается под любой учеткой, при запуске в ручную "...ldap -d -1 -h....." нормально принимает адреса ldapi:// и завершает работу =( и все .. че делать не понятно. подскажите если кто сталкивался с подобным.

KaMa-CyTpA, 2007-11-08 в 12:55:30

Файл ldap.conf
Там разве не так надо?

uri ldapi://%2fvar%2frun%2fopenldap%2fldapi/

Чукот, 2007-11-28 в 11:31:02

Статья деиствительно отличная, но в процессе реализации - возникают некоторые трудности:
1) Очепятки автора). Если делать "завязав глаза" всмысле попытаться повторить, незная каких то элементарных мелочеи, наподобие - где и какие кавычки ставить, то ничерта не заработает, но это даже думаю и к лучщему - развивает..
2) Кое что упущено, причем это не вызывает какого то негатива, дескать автор скотина, недописал такой важный момент..). Но не совсем ясно - как у автора статьи все заработало скажем... без SRV записи в описании зоны, в которую включен домен.
Как показывает практика - машина клиент может использовать NetBIOS имя домена, дя того чтобы к нему присоединиться. У меня так и было, но лиш после того как я записал ip-адрес домена как wins-сервер... Что кстати не очень красиво выглядит.

Так же согласно практике - клиент ищет запись относительно размещения службы в SRV-записи DNS-зоны домена, и далее в записи А той же зоны.

То есть вывод - домен либо должен быть сервером DNS для клиентов, либо WINS сервером...
На текущий момент - узнав все это у меня все еще имеються некие траблы.
Зоны SRV и A я описал, клиент их удачно ищет, но потом страшно ругаеться на то что сервер "Такой-то домен наиден в зоне SRV, ему соответсвует запись А такая то, но машина с этим ip выключена, недоступна, или неправильно описана зона А"
Вот как я описал зону:
$TTL 3600

local.    IN      SOA     isx.local. postmaster.binteh.ru. (
               2001220202
               3600
               900
               3600000
               3600 )

                       IN      NS      isx.local.
isx                     IN      A       10.0.1.100 ;PDC
isy                     IN      A       10.0.1.33;Client
_ldap._tcp.dc._msdcs.isx.local. SRV 0 0 389 isx.local. ;SRV-record for LDAP Serice PDC

Все пингуеться, телнетится, обнаруживаеться везде, кроме мастера ввода машины в домен). Мистика... он не видит машину, на которую указывают записи, недоходит даже до окна авторизации, хотя в реализации с NetBIOS - так получалось.
такие дела, братья по разуму..)

Чукот, 2007-11-28 в 11:39:37

В общем - реализация PDC на Samba по структуре взаимодеиствия служб DNS dhcp ldap - не очень сильно отличаеться от структуры взаимодеиствия в виндовс. ну или по краинеи мере не должна сильно отличаться на мои взгляд.
Во первых - некоторая унификация, в чем то самобытная но в целом совместимая... домен где это соблюдено - можно "незаметно подсунуть". Администратору виндовс и он будет администрироват ьего удаленно чрез LDAP - не догадываясь ни о чем).
Кроме того - есть еще одна большая польза. Сколько я не читал книжек о АД и тд... написаных и заточеных под ПО Микрософт ни одна не принесла мне знаний сравнимых по значимости с теми, которые получил настраивая PDC на Samba+LDAP).

s.romanov, 2007-11-28 в 13:37:56

for lissyara
может на сайт в раздел документации вот это положить
http://argo-uln.blogspot.com/search/label/samba

Munche, 2007-12-12 в 8:52:45

Ссылка на архиф с конфигами не пашед

princeps, 2007-12-20 в 18:57:11

А то что корень ldap-каталога не совпадает с workgroup в smb.conf, это так и задумано? Не опечатка?

xardkorov, 2008-01-08 в 5:02:28

Cannot resolve group people to gid : groupname not found

наконец то эту проблему я решил. вся буде была в неверном описании эксцессов в базе лдап. пока я её просто закоментировал, а каждому, думаю, нужно просто написать под себя..

SerGeleos, 2008-03-05 в 21:08:23

Help!!! Настраиваю все по доке,
FreeBSD 6.2
openldap-server-2.3.41
nss_ldap-1.257
ldapscripts-1.7.2
Cтупор при добавлении группы
ldapaddgroup admins
в ответ
Warning : using command-line passwords, ldapscripts may not be safe
Successfully added group admins to LDAP
в результате в базе LDAP группа появляеться
в файле  /etc/group группы нет соответственно при
ldapadduser admin admins
юзер не добавляется говорит нет такой группы

Дюх, 2008-03-06 в 9:04:11

Дак группа вроде бы и не должна появляться в в /etc/group. В том и смысл, что бы хранить пользователей и группы в LDAP.

SerGeleos, 2008-03-06 в 14:54:49

Warning : using command-line passwords, ldapscripts may not be safe
Интересует данный вопрос, в документации при добавлении   группы этого сообщения нет, о каком пароле идет речь, не могу понять, nss_ldap.conf или ldapscripts.conf неправильно настроены, потму как в базе LDAP запись появляеться, а система ее не видит,nsswitch.conf вроде тоже настроен.

PENNIS, 2008-03-30 в 21:14:20

ГАНДОНЫ!!!
Почему же вы не написали что нужен файл /usr/local/etc/ldap.secret???

Извините, за жаргон. Крик души... Нельзя так мучить людей.
Просто очень много времени потратил на поиски ошибки:
could not search LDAP server - Server is unavailable.

Mrak, 2008-04-02 в 19:09:31

Таж трабла что и у SerGeleos, при выводе

ls -lad /home/admin/
выводит
drwx----—  2 10001  10001  512 Apr  2 10:50 /home/admin/
При указании ID группы пользовательсоздается, а пи указании имени группы нет.

Подскажите где косяк плз

pavel, 2008-04-04 в 22:07:49

Все делал как в статье, но не могу разобраться с этой ошибкой:
# ldapaddgroup admins
Warning : using command-line passwords, ldapscripts may not be safe
Error adding group admins to LDAP

Тут уже кто-то задавал этот вопрос, но внятного ответа я не вижу

roman_ssh, 2008-04-15 в 13:14:37

Если кого напрягает
winbindd[2971]:   ERROR: Initialization failed for alloc backend tdb, deferred!
в логе самбы вот лекарство
idmap uid = 50000-60000
idmap gid = 50000-60000
в [global]
uid и gid естессно ваши

Констанитн, 2008-04-28 в 16:37:59

Отличная статья, спасибо.
есть маленбкий вопросик
как пользователю (линукс) сменить себе пароль?

lymar, 2008-05-26 в 21:10:52

При входе в домен пишет что нет профиля юзера ..в чем может быть проблемма?

m0ps, 2008-05-31 в 18:10:54

в папке профилей создай папу с названием - именем юзверя

SchmeL, 2008-06-26 в 13:52:43

а если ставить LDAP 2.4.10, то там нету nss_ldap (в портах тока для версии 2.3) как быть. ставлю 2.3.42 вообще ниче не запускает...на 2.4.10 все работает (тоесть служба запускается)

Spreegun, 2008-08-21 в 14:18:08

Пенис если ты неразбираешься и не знаешь в чем проблема не надо писать таких выражений. Тут каждый по Неделе разбирался как все это поставить в статье указанно все верно за исключением многих подробностей. Все работает - прочитайте подумайте и у вас все получится.

Z-16-H, 2008-08-26 в 4:30:11

Привет fr33man!!!
Небольшая ошибочка в тексте (выделяю ___):

По просьбам трудящихся: ___восклицательный___ знак означает, что строка перенесена. Его не нужно копировать в rc.conf. ))

laptop# echo slapd_enable=\"YES\" >> /etc/rc.conf
laptop# echo slapd_flags=\'-h \"ldapi://%2fvar%2frun%2fopenldap%2fldapi/ \
___?___ {а здесь — вопросительный}ldap://0.0.0.0/ ldap://127.0.0.1/\"\' >> /etc/rc.conf
laptop# mv /usr/local/etc/rc.d/slapd /usr/local/etc/rc.d/slapd.sh

Maed, 2008-09-11 в 11:19:45

Та же проблема, что и у SerGeleos:
ldapadduser testuser people
Cannot resolve group people to gid : groupname not found
Что и где надо проверить?

Oloremo, 2008-09-11 в 13:20:19

ldapscripts-1.8.0_1
nss_ldap-1.257
openldap-client-2.4.11
openldap-server-2.4.11_1
FreeBSD-7.0

Проблемы на этапе превращения посиксакаунта в самбическую запись.
В инструкции:

laptop# smbpasswd -a admin
New SMB password:
Retype new SMB password:
Added user admin.


У меня(с дебагом):
smbpasswd -D 888 -a admin2
Netbios name list:-
my_netbios_names[0]="MX"
Attempting to register passdb backend ldapsam
Successfully added passdb backend 'ldapsam'
Attempting to register passdb backend ldapsam_compat
Successfully added passdb backend 'ldapsam_compat'
Attempting to register passdb backend NDS_ldapsam
Successfully added passdb backend 'NDS_ldapsam'
Attempting to register passdb backend NDS_ldapsam_compat
Successfully added passdb backend 'NDS_ldapsam_compat'
Attempting to register passdb backend smbpasswd
Successfully added passdb backend 'smbpasswd'
Attempting to register passdb backend tdbsam
Successfully added passdb backend 'tdbsam'
Attempting to find an passdb backend to match ldapsam:ldap://localhost/ (ldapsam)
Found pdb backend ldapsam
smbldap_search_domain_info: Searching for:[(&(objectClass=sambaDomain)(sambaDomainName=MX))]
smbldap_search_ext: base => [dc=Main,ou=domain,dc=CAS], filter => [(&(objectClass=sambaDomain)(sambaDomainName=MX))], scope => [2]
The connection to the LDAP server was closed
smb_ldap_setup_connection: ldap://localhost/
smbldap_open_connection: connection opened
ldap_connect_system: Binding to ldap server ldap://localhost/ as "cn=root,dc=CAS"
ldap_connect_system: successful connection to the LDAP server
ldap_connect_system: LDAP server does support paged results
The LDAP server is successfully connected
pdb backend ldapsam:ldap://localhost/ has a valid init
New SMB password:
Retype new SMB password:
smbldap_search_ext: base => [dc=Main,ou=domain,dc=CAS], filter => [(&(uid=admin)(objectclass=sambaSamAccount))], scope => [2]
smbldap_open: already connected to the LDAP server
ldapsam_getsampwnam: Unable to locate user [admin2] count=0
Failed to modify password entry for user admin2
---

Соответсвенно он не может модифицировать запись, так как он ищет objectclass=sambaSamAccount  - откуда ему там всзятся? Он же как раз его и должен созать, как я понимаю.

MSI, 2008-09-12 в 11:06:41

Ребят у меня проблема, я не могу добавить группу
ldapaddgroup 1144
dapaddgroup 1144
Error adding group 1144 to LDAP
куда рыть?


--------------------------------

Sep 12 00:00:00 msi newsyslog[17245]: logfile turned over due to size>100K
Sep 12 00:01:00 msi slapd[532]: conn=48 fd=14 ACCEPT from IP=127.0.0.1:54736 (IP
Sep 12 00:01:00 msi slapd[532]: conn=48 op=0 BIND dn="" method=128
Sep 12 00:01:00 msi slapd[532]: conn=48 op=0 RESULT tag=97 err=0 text=
Sep 12 00:01:00 msi slapd[532]: conn=48 op=1 SRCH base="ou=Group,dc=kvart,dc=ru"
Sep 12 00:01:00 msi slapd[532]: conn=48 op=1 SRCH attr=cn userPassword memberUid
Sep 12 00:01:00 msi slapd[532]: conn=48 op=1 SEARCH RESULT tag=101 err=32 nentri
Sep 12 00:01:00 msi slapd[532]: conn=48 fd=14 closed (connection lost)
Sep 12 00:04:36 msi slapd[532]: conn=49 fd=14 ACCEPT from IP=127.0.0.1:62505 (IP
Sep 12 00:04:36 msi slapd[532]: conn=49 op=0 BIND dn="" method=128

log
---------------------------------------------
ep 12 00:00:00 msi newsyslog[17245]: logfile turned over due to size>100K
Sep 12 00:01:00 msi slapd[532]: conn=48 fd=14 ACCEPT from IP=127.0.0.1:54736 (IP=127.0.0.1:389)
Sep 12 00:01:00 msi slapd[532]: conn=48 op=0 BIND dn="" method=128
Sep 12 00:01:00 msi slapd[532]: conn=48 op=0 RESULT tag=97 err=0 text=
Sep 12 00:01:00 msi slapd[532]: conn=48 op=1 SRCH base="ou=Group,dc=kvart,dc=ru" scope=1 deref=0 filter="(&(objectClass=posixG
Sep 12 00:01:00 msi slapd[532]: conn=48 op=1 SRCH attr=cn userPassword memberUid uniqueMember gidNumber
Sep 12 00:01:00 msi slapd[532]: conn=48 op=1 SEARCH RESULT tag=101 err=32 nentries=0 text=
Sep 12 00:01:00 msi slapd[532]: conn=48 fd=14 closed (connection lost)
Sep 12 00:04:36 msi slapd[532]: conn=49 fd=14 ACCEPT from IP=127.0.0.1:62505 (IP=127.0.0.1:389)
Sep 12 00:04:36 msi slapd[532]: conn=49 op=0 BIND dn="" method=128
Sep 12 00:04:36 msi slapd[532]: conn=49 op=0 RESULT tag=97 err=0 text=

Артём, 2008-10-20 в 17:04:29

По поводу БАГОВ.
Я ставил на FreeBSD 7.0
Вот с чем сталкнулся:
1. После комманды
net groupmap add unixgroup=admins rid=512 type=d
У меня вылетало сооьщение вот такое
Can`t lookup UNIX group admins
Как это дело лечим?
редактируем файл /etc/group
Дабавляем (если вы такие группы созадёте)
admins:*:10001:
users:*:10002:
computers:*:10003:
Идентификаторы (10001 .... ) берём отсюда
ldapsearch -LLL -x -b "dc=sdb,dc=ru" '*'
Ищем там группы и смотрим их gidNumber
Сохраняем и проблема исчезнет
2.При регистрации с Windows XP мне выдалось сообщение о том, что имя пользователя не найдено.
Лезем в лог самбы той машины с которой заходим.
Я обнаружил, что пути:
add machine script = /usr/local/bin/ldapaddmachine '%u' computers
   add user script = /usr/local/bin/ldapadduser '%u' people
   add group script = /usr/local/bin/ldapaddgroup '%g'
   add user to group script = /usr/local/bin/ldapaddusertogroup '%u' '%g'
   delete user script = /usr/local/bin/ldapdeleteuser '%u'
   delete group script = /usr/local/bin/ldapdeletegroup '%g'
   delete user from group script = /usr/local/bin/ldapdeleteuserfromgroup '%u' '%g'
   set primary group script = /usr/local/bin/ldapsetprimarygroup '%u' '%g'
   rename user script = /usr/local/bin/ldaprenameuser '%uold' '%unew

Не очень верны. Вместо BIN надо вводить SBIN.

Собственно это всё с чем у меня были сложности.

И ещё. Те кто ставит самую последнию версию OpenLdap, знайте, что модуль ldbm там отсутствует.

Константин, 2008-12-09 в 21:23:58

2 Артем:
ну видимо у всех по разному:
у меня FreeBSD 7.0
#whereis ldapaddmachine
выдает
ldapaddmachine: /usr/local/bin/ldapaddmachine
так что в статье правильно или если быть вернее - у меня совпало с тем как в статье...

Артём, 2008-12-15 в 16:13:57

Значит как-то зависит от FreeBSD.

sEr..., 2008-12-20 в 19:43:23

Помгоите пожалуйста, и меня такаяже проблеемма как и у
>MSI, 2008-09-12 в 11:06:41
>
>Ребят у меня проблема, я не могу добавить группу
>ldapaddgroup 1144
>dapaddgroup 1144
>Error adding group 1144 to LDAP
>куда рыть?

Тут я подробно описал.
http://forum.lissyara.su/viewtopic.php?f=8&t=5495&sid=153fb6e6398f363c40a6bd4ce51d2214

SchmeL, 2009-04-26 в 14:47:02

freebsd 7.0 p 11
выскакиевает ошибка nss_ldap: could not search LDAP server - Server is unavailable
хотя учетки ldap прекрасно видны системе. думаю просто демон nss_ldap запускается раньше самого slapd.

прохожий, 2009-06-08 в 18:14:34

[quote]HOMESKEL="/etc/skel"  # где брать начальные настройки пользователей[/quote]

и все новые пользователи останутся без настроек.
Вместо этого:

HOMESKEL="/usr/share/skel"


прохожий, 2009-06-09 в 0:01:47

ага. оказывается, наш ldapscripts под линух заточен. копирует файлы из skel прямо с префиксом 'dot'. я боролся с этим так:
в файле /usr/local/sbin/ldapadduser находим заголовок Create Home dir, а под ним находим строчку
cp -pR "$HOMESKEL/" "$_HOMEDIR" 2>>"$LOGFILE" 1>/dev/null
и меняем на следующее

mkdir "$_HOMEDIR" 2>>"$LOGFILE" 1>/dev/null
     for i in "$HOMESKEL/"*; do cp -pR "$i" "$_HOMEDIR/"${i##*/dot} 2>>"$LOGFILE" 1>/dev/null;done

wet and dirty but works.

sEr..., 2010-01-13 в 12:03:15

>>> По просьбам трудящихся: восклицательный знак означает, что строка перенесена. Его не нужно копировать в rc.conf. ))

Или вопросительный :))))) ?

luser, 2010-12-05 в 14:46:30

Ребят, скока бы статей не перерыл, но при вводе винды в домен (nix-ы не проверял) она ищет SRV-запись, а про это нигде не говорится или все-таки DNS он не нужен здесь???

1, 2011-02-10 в 16:36:10

Очень давно ищу статью, в которой бы была описана процедура аутентификации самбы из ldap без всяких ad/pdc и тому подобного. Есть уже готовый и использующийся каталог, на который завязана кача служб - ssh, ftp, http, sudo, jabber, а вот самбу там и не понял как вкрутить. Может быть можно в этой статье какие-то шаги пропустить и получить то, что мне надо?

БорисОсы, 2011-02-11 в 9:29:47

а есть же схема своя у самбы для лдап. Прикрути её в конфиге лдап и юзай)))

Артур Пирожков, 2011-07-27 в 17:11:25

Собираю сейчас по статье. Единственное, необходимо откатить nss_ldap на версию (или две назад), т.к. текущая, я так понял, работает с openldap-server 24. Либо собирать на 2.4, но там другой механизм репликации.  

SOKOL, 2012-05-29 в 16:33:18

FreeBSD 8.2
информация о портах
ldapscripts-1.10.0
nss_ldap-1.265_4
openldap-server-2.3.43
openldap-client-2.3.43
samba34-3.4.9_1

Проблема такова следовал мануалу, остановился на шаге 4, установил samb'у, скопировал схему, прописал ее в slapd.conf, перезапускаю slapd и выдаем мне ошибку nss_ldap: could not search LDAP server - Server is unavailable. До этого момента slapd работал исправно.

alibi, 2013-04-04 в 15:58:42

а где архив с конфигами



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0731 секунд
Из них PHP: 60%; SQL: 40%; Число SQL-запросов: 77 шт.
Исходный размер: 127243; Сжатая: 27643