Настройка Samba 3 (PDC) с пользователями в LDAP каталоге (ldap samba pdc domain win auth aaa linux pam)
Ключевые слова: ldap , samba , pdc , domain , win , auth , aaa , linux , pam , (найти похожие документы )
From: Crux <crux@syktsu.ru. >
Date: Mon, 20 Sep 2004 18:21:07 +0000 (UTC)
Subject: Настройка Samba 3 (PDC) с пользователями в LDAP каталоге
Оригинал: http://www.unix.nordcomp.ru/articles.html?page=2&id=17
Samba 3 [PDC] + LDAP HOWTO
Введение
Данная статья посвящена настройке Samba 3 в качестве основного
контроллера домена (PDC), все записи о пользователях которой хранятся
в LDAP-каталоге. Преимущества подобной организации очевидны -
упрощение управления пользователями, возможность делегирования
полномочий по управлению пользователями в домене, повышение
отказоустойчивости системы.
Процесс установки производился на Alt Linux Master 2.2. Поэтому есть
много специфических деталей в описании, касающиеся именно данного
дистрибутива, но тем не менее, на основе данной статьи можно поднять
данную схему на любом другом дистрибутиве.
Статья разбита на несколько частей. Первоначально будет вкратце
описана установка и настройка OpenLDAP. Затем будет описана установка
и настройка Samba 3. Ну а далее последует подробное описание каким
образом создавать и управлять пользователями в домене.
OpenLDAP
Установка
Процесс установки OpenLDAP уже описывался
(http://unix.nordcomp.ru/articles.html?id=12 ), поэтому заострять на
этом внимания не буду. Важно отметить что при установке openldap из
rpm не забудьте про devel-пакеты (libldap-devel), они потребуются для
сборки samba3.
Конфигурация
Пример конфигурации slapd.conf также уже приводился. Но
поскольку описываемый процесс установки производится на Alt Linux
Master 2.2, а также для того чтобы данная статья обрела некоторый
статус самостоятельности (без зависимостей :), я опишу конфигурацию
сначала, включая специфические моменты касающиеся samba3.
Также в данной конфигурации я расскажу как поднять ldap через ssl,
поскольку наиболее вероятна ситуация когда ldap-сервер и samba-сервер
расположены на различных компьютерах и трафик между ними проходит по
общедоступной сети, а следовательно должен быть защищён от разного
рода кул-хацкеров.
/etc/openldap/slapd.conf
#-----------------------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
# Последняя схема samba.schema прилагается вместе с исходниками samba3
# Есть значительные отличия схемы samba2 от схемы samba3,
# поэтому использовать нужно именно схему samba3
include /etc/openldap/schema/samba.schema
pidfile /var/run/slapd.pid
argsfile /var/run/slapd.args
# Здесь включается ssl
TLSCipherSuite HIGH:MEDIUM:+SSLv2:+TLSv1
TLSCertificateFile /etc/openldap/ldap.pem
TLSCertificateKeyFile /etc/openldap/ldap.pem
database ldbm
suffix "dc=home,dc=ru"
rootdn "cn=root,dc=home,dc=ru"
# Пароль rootpw лучше всего указывать в зашифрованном виде.
# Для генерации шифрованного пароля используйте утилиту slappasswd
# Например: slappaswd -h {crypt}
rootpw {crypt}7Ly54RT33kms9.
directory /var/lib/ldap/bases
# Для начала неплохо указать высокий уровень отладки, чтобы было проще разобраться,
# если что-то пойдёт не так.
loglevel 256
index objectClass,uid,uidNumber,gidNumber eq
index cn,mail,surname,givenname eq,subinitial
# Для samba3 также рекомендуются добавить эти индексы:
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq
# Basic ACL
access to attr=userPassword
by self write
by anonymous auth
by * none
# Доступ к smb-паролям пользователей только админу самбы crux
access to attrs=lmPassword,ntPassword
by dn="cn=crux,ou=Users,dc=home,dc=ru" write
by * none
access to *
by * read
#----------------------------end----------------------------#
Вот собственно и весь конфигурационный файл.
Несколько слов об ssl. Чтобы включить поддержку ssl, в системе должен
быть установлен пакет openssl, а также libssl и libssl-devel
(последний потребуется для сборки samba).
Потребуется создать self-signed сертификат ldap.pem и выложить его в
каталог /etc/openldap. Важно проследить, чтобы права на этот файл были
- 400, и принадлежать он должен пользователю под которым работает
OpenLDAP (в данном дистрибутиве - пользователь ldap). В состав пакета
openldap-servers входит утилита gencert.sh (/usr/share/openldap/gencert.sh),
с помощью которой можно создать сертификат.
После того как вы настроили OpenLDAP, запустите его командой
service ldap start
Можно проверить слушает ли сеть наш сервер, запустив команду:
# netstat -nap | grep slapd
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 7957/slapd
tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN 7957/slapd
Как видно slapd слушает порты 389 и 636 - последний как раз относится
к соединению через защищёный канал ssl.
Samba 3
Что нового появилось в Samba 3 версии:
· - Несколько схем хранения пользовательских аккаунтов (backends).
· - Включена поддержка Kerberos 5 аутентификации и LDAP, что
позволяет самбе нативно входить в Active Directory домен (как клиент).
· - Поддержка Unicode.
· - Полная поддержка Windows NT4 domain trusts.
Надо отметить, что активно деклалируемая "поддержка Active Directory"
в Samba3, означает, что Samba3 может входить в домен Active Directory
как полноценный member (не буду употреблять русского аналога этого
слова). Но это не значит, что Samba3 может выполнять роль сервера AD.
Также по прежнему Samba не может быть полноценным BDC для PDC под
Windows NT и наоборот, поскольку пока не реализована поддержка
репликации SAM баз пользователей между Samba и NT.
Установка
В дистрибутиве Alt Master 2.2 присутствует пакет samba3, но он уже
достаточно старый и собран без поддержки ldap. Поэтому есть два
варианта действий: скачать последнюю версию сырцов samba с samba.org
(на момент написания статьи это samba-3.0.1) или взять последнюю
версию source-rpm пакета из Sisyphus. Правильнее, конечно, последний
вариант, но попытка установить на Master2.2 что-либо из Сизифа может
повлечь значительное обновление пакетов в системе. Поэтому я предпочёл
взять source-rpm пакет samba3 пересобраный из Сизифа для Master2.2.
Найти его можно здесь: ftp://212.13.100.3/pub/shrek/ALTLinux/samba3
. На момент написания статьи это был samba3-3.0-alt46.1m.src.rpm
1. Сборка samba3 из src.rpm пакета
Сборка source-rpm в Master'е производится под непривилегированным
пользователем. Хочу отметить, что даже переделанный пакет под Master
был сделан не совсем корректно. Обнаружились две "неудовлетворяемые"
зависимости: требовались пакеты db2latex-xsl и kernel-headers-std,
которых нет в Мастере. Как мне пояснили в рассылке altlinux первый
пакет необходимо было взять из Сизифа, а чтобы ликвидировать 2-ую
зависимость надо ручками исправить spec-файл, прописать вместо
kernel-headers-std - kernel24-headers. Для этого:
$ rpm -ivh samba3-3.0-alt46.1m.src.rpm
$ cd ~/RPM/SPECS
$ vi samba3.spec
Ищите в этом файле вхождение пресловутой строки "kernel-headers-std" и
меняете на "kernel24-headers". Далее
$ rpm -bb --with ldap samba3.spec
После сборки пакетов, нужно установить samba3.
$ cd ../RPMS/i686
$ su
# rpm -ivh samba3-common-3.0-alt46.1m.i686.rpm
samba3-3.0-alt46.1m.i686.rpm \
samba3-client-3.0-alt46.1m.i686.rpm samba3-vfs-3.0-alt46.1m.i686.rpm \
samba3-doc-3.0-alt46.1m.i686.rpm
2. Сборка из сырцов с samba.org
Если вы решили собирать samba из сырцов, то процедура эта достаточно
стандартная, важно чтобы в системе были devel-пакеты openldap, чтобы
требуемая поддержка ldap была реализована.
$ tar zxf samba-3.0.1.tar.gz
$ cd samba-3.0.1/source
$ ./configure --with-ldap (...другие опции на ваш вкус...)
$ make
$ su
# make install
Конфигурация
Приводить весь конфигурационный файл не имеет смысла, будут указаны
лишь необходимые параметры, которые необходимы для работы Samba в
качестве PDC с поддержкой LDAP.
Конфигурационный файл samba.conf
[global]
workgroup = HOMENET
netbios name = HOME
security = user
admin users = crux
# В качестве базы данных пользователей-паролей используется ldap,
# причём соединяемся с сервером ldap через TLS
passdb backend = ldapsam:ldap://ldap.home.ru
ldap suffix = dc=home,dc=ru
ldap user suffix = ou=Users
ldap group suffix = ou=Groups
ldap machine suffix = ou=Computers
ldap filter = (uid=%u)
ldap admin dn = "cn=root,dc=home,dc=ru"
ldap delete dn = no
ldap ssl = start tls
domain master = yes
domain logons = yes
logon script = %u.bat
logon path = \\%L\Profiles\%u
logon drive = H:
# Настройка кирилицы
dos charset = CP866
unix charset = KOI8-R
display charset = KOI8-R
[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
browseable = no
guest ok = yes
writable = no
share modes = no
[Profiles]
path = /var/lib/samba/profiles
browseable = no
guest ok = yes
writeable = yes
; Для нормальной работы w2kSP2 убираем поддержку nt acl в профиле
nt acl support = no
После редактирования файла, можно проверить его коррестность командой
`testparm`. Если есть какие-то ошибки, то они будут обозначены в
выводе команды. Конфигурационный файл готов и можно запускать samba.
Samba подключается к ldap под аккаунтом администратора ldap
(cn=root,dc=home,dc=ru), поэтому необходимо сообщить ей пароль этого
аккаунта. Делается это следующей командой:
# smbpasswd -w PASSWORD
Создание базовой схемы и добавление пользователе
В samba 3 применяется новая схема samba.schema и есть определённые
отличия от схемы, применявшейся в samba 2-ой версии. Если есть
какие-то причины, по которым вы хотите использовать старую схему в
samba3, то такая возможность существует, требуется лишь собирать samba
с опцией --with-ldapsam. Но не рекомендую... Далее я буду описывать
лишь новую схему.
Есть ещё один весьма важный момент. Несмотря на то, что информация о
пользователях samba будет хранится в ldap, необходимо по прежнему
заводить системных пользователей для каждого пользователя samba и
аккаунтов компьютеров.
Если вспомнить схему без использования ldap, то было тоже самое,
пользователи прописывались в двух местах: системные в passwd, а
пользователи самба в smbpasswd. В схеме с ldap перестаёт
использоваться smbpasswd, но системные аккаунты по прежнему нужны.
Конечно наличие системного аккаунта не страшно, ведь он добавляется
всего лишь один раз, и все последующие операции над пользователем
samba производятся в ldap каталоге. Но это может быть очень неудобно,
если вы планируете для отказоустойчивости использовать второй
контроллер домена (BDC). Придётся дублировать системные учётные записи
на двух компьютерах, что может свести на нет все преимущества схемы с
ldap.
Чтобы не заводить системных аккаунтов и полностью хранить информацию о
пользователях (как пользователей samba так и системных) в LDAP,
необходимо воспользоваться замечательной библиотекой nss_ldap и
модулем pam_ldap. Как это сделать будет рассказано в следующей главе
статьи, а пока будет описан общий процесс создания записей.
Итак, следующий древовидную схему требуется поместить в ldap, для
работы с samba:
dn: dc=home,dc=ru
|
+-dn: ou=Users,dc=home,dc=ru
|
+-dn: ou=Groups,dc=home,dc=ru
|
+-dn: ou=Computers,dc=home,dc=ru
Внутри главного контейнера dc=home,dc=ru создаются ещё три: Users -
для хранения пользовательских аккаунтов, Group - группы, Computers -
аккаунты компьютеров в домене.
Получаем следующий ldif-файл base.ldif:
dn: dc=home,dc=ru
objectClass: dcObject
objectclass: organization
dc: home
o: home
dn: ou=Users,dc=home,dc=ru
objectClass: organizationalUnit
ou: Users
dn: ou=Groups,dc=home,dc=ru
objectClass: organizationalUnit
ou: Groups
dn: ou=Computers,dc=home,dc=ru
objectClass: organizationalUnit
ou: Computers
Запишем его в ldap:
# ldapadd -W -x -D "cn=root,dc=home,dc=ru" -f base.ldif
Замечание: Для упрощения добавления записей в ldap, в том числе и для
добавления базовой схемы я бы порекомендовал использовать
замечательный набор тулзов smbldap-tools (idealx.org), которые
поставляется вместе с самбой.
Теперь перейдём к заполнению базы пользователями и группами.
Пользовательский аккаунт для самбы использует два основных объектных
класса: posixAccount и sambaSamAccount. Аккаунт группы: posixGroup,
sambaGroupMapping.
Прежде всего должны быть созданы два пользователя: администратор и
гость. А также соотвествующие им группы администраторов и гостей
домена. Также необходимо создать группу пользователей домена, которой
будут принадлежать все обычные пользователи. Для создания этих
аккаунтов потребуется задать специфические атрибуты:
sambaPrimaryGroupSID и sambaSID. (SID в windows NT является неким
аналогом UID в UNIX). Для того чтобы знать, что писать в качестве
значений этих аттрибутов необходимо знать SID нашего домена, который
можно получить по команде:
# net getlocalsid
S-1-5-21-3153401187-884309351-300090610
Отсюда получаем такие значения для администратора домена:
sambaPrimaryGroupSID: S-1-5-21-3153401187-884309351-300090610-512
sambaSID: S-1-5-21-3153401187-884309351-300090610-500
Для гостя домена:
sambaPrimaryGroupSID: S-1-5-21-3153401187-884309351-300090610-514
sambaSID: S-1-5-21-3153401187-884309351-300090610-501
Для группы пользователей домена:
sambaPrimaryGroupSID: S-1-5-21-3153401187-884309351-300090610-513
Подробнее о том какие значения sid/rid бывают у встроенных учётных
записей в NT домене и каких их формировать можно почитать здесь:
http://www.unav.es/cti/ldap-smb/smb-ldap-3-howto.html #Create_builtin
Получится следующий ldif-файл:
### main.ldif ###
dn: uid=crux,ou=Users,dc=home,dc=ru
cn: crux
objectClass: sambaSAMAccount
objectClass: posixAccount
gidNumber: 1000
uid: crux
uidNumber: 1000
homeDirectory: /home/crux
sambaPwdLastSet: 0
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
sambaPwdMustChange: 2147483647
sambaHomePath: \\LDAP\homes
sambaHomeDrive: H:
sambaProfilePath: \\LDAP\Profiles\crux
sambaPrimaryGroupSID: S-1-5-21-3153401187-884309351-300090610-512
sambaLMPassword: XXX
sambaNTPassword: XXX
sambaAcctFlags: [U ]
sambaSID: S-1-5-21-3153401187-884309351-300090610-500
loginShell: /bin/false
gecos: Netbios Domain Administrator
dn: uid=nobody,ou=Users,dc=home,dc=ru
cn: nobody
objectClass: sambaSAMAccount
objectClass: posixAccount
gidNumber: 1001
uid: nobody
uidNumber: 1001
homeDirectory: /dev/null
sambaPwdLastSet: 0
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
sambaPwdMustChange: 2147483647
sambaHomePath: \\LDAP\homes
sambaHomeDrive: H:
sambaProfilePath: \\LDAP\Profiles\nobody
sambaPrimaryGroupSID: S-1-5-21-3153401187-884309351-300090610-514
sambaLMPassword: NO PASSWORDXXXXXXXXXXXXXXXXXXXXX
sambaNTPassword: NO PASSWORDXXXXXXXXXXXXXXXXXXXXX
sambaAcctFlags: [NU ]
sambaSID: S-1-5-21-3153401187-884309351-300090610-501
loginShell: /bin/false
dn: cn=Domain Admins,ou=Groups,dc=home, dc=ru
objectClass: posixGroup
gidNumber: 1000
memberUid: crux
cn: Domain Admins
dn: cn=Domain Guests, ou=Groups, dc=home, dc=ru
objectClass: posixGroup
gidNumber: 1001
memberUid: nobody
cn: Domain Guests
dn: cn=Domain Users, ou=Groups, dc=home, dc=ru
objectClass: posixGroup
gidNumber: 1002
memberUid: nobody
cn: Domain Users
Запишем это в ldap:
# ldapadd -W -x -D "cn=root,dc=home,dc=ru" -f user.ldif
После этого потребуется создать три группы (системные), например,
smbadmins, smbguests и smbusers, с соотвествующими gid (1000 - 1002),
ну и пользователя crux, входящего в группу c gid=1000.
Следующим шагом требуется задать пароль администратора самбы:
# smbpasswd crux
Замечу также, что после выполнения данной команды устанавливается не
только пароль для пользователя crux, но также прописывается запись в
ldap-каталоге о нашем домене dn: sambaDomianName=HOMENET,dc=home,dc=ru
Теперь необходимо провести соотвествие между unix-группами и
NT-группами, хранящимися в LDAP.
# net groupmap add sid=S-1-5-21-3153401187-884309351-300090610-512
unixgroup=smbadmins type=domain
# net groupmap add sid=S-1-5-21-3153401187-884309351-300090610-513
unixgroup=smbusers type=domain
# net groupmap add sid=S-1-5-21-3153401187-884309351-300090610-514
unixgroup=smbguests type=domain
Всё. Можно попробовать подключиться в домен с любого win-клиента.
Следует также помнить, что при включении win2k/NT/XP в домен
необходимо также создавать аккаунт компьютера. Делается это так:
# useradd -g machines -d /dev/null -c "machine nickname" -s /bin/false machine_name$
# passwd -l machine_name$
# smbpasswd -a -m machine_name
где machine_name - это NetBIOS имя компьютера (обратите особое
внимание на значок `$` при добавлении системного пользователя и его
отсутствие при добавлении в LDAP).
Также важно, что при включении машин с win2k/NT/XP в домен, винда
попросит ввести логин и пароль аккаунта имеющего права на подключение
к домену. Это должен быть аккаунт администратора домена (в нашем
примере, crux).
Добавление обычных пользователей происходит абсолютно так же как и
обычно:
# useradd -g smbusers -d /home/user -c "new user" -s /bin/false user
# passwd -l user
# smbpasswd -a user
Удалённое администрирование Samba
В Samba3 появилась уникальная возможность управления пользователями
посредством стандартного набора утилит M$ SRVTOOLS (
ftp://ftp.microsoft.com/Softlib/MSLFILES/SRVTOOLS.EXE ), которые обычно
используется для управления NT-доменом. Чтобы бы это было возможно,
необходимо лишь добавить следующие строки в конфигурацию smb.conf:
[global]
...
...
add user script = /usr/sbin/useradd %u
add group script = /usr/sbin/groupadd %g
add machine script = /usr/sbin/adduser -n -g machines -c Machine -d
/dev/null -s /bin/false %u
delete user script = /usr/sbin/userdel %u
delete user from group script = /usr/sbin/deluser %u %g
delete group script = /usr/sbin/groupdel %g
Теперь с любой win машины (в домене) можно войти под аккаунтом
администратора самбы и производить все возможные действия над
аккаунтами в домене Samba.
Что можно про это сказать - фантастика!
Использование nss_ldap, pam_ldap для хранения системных пользователей в ldap
Как я говорил, определённое неудобство может вызвать обязательное
наличие системных аккаунтов в системе. Чтобы хранить системных
пользователей в LDAP, должны быть установлены пакеты nss_ldap и
pam_ldap, ну а также nscd (для кэширования лукапов).
Вся дальнейшая информация относится исключительно к дистрибутиву Alt
Linux Master 2.2, поскольку настройка этого дистрибутива для работы c
nss_ldap и pam_ldap очень специфична, а любая ошибка может привести к
невозможности либо загрузить Линукс или войти в систему.
1. /etc/nsswitch.conf
В этом файле необходимо изменить 3 строки. Важно чтобы слово ldap не
стояло первым в списке, поскольку в Master2.2 есть большой глюк в
такой раскладке. Рекомендую такой вариант:
passwd: files ldap
shadow: tcb files ldap
group: files ldap
2. /etc/ldap.conf
host ldap.home.ru
base dc=home,dc=ru
rootbinddn cn=root,dc=home,dc=ru
scope one
pam_filter objectclass=posixAccount
pam_login_attribute uid
pam_member_attribute gid
pam_password crypt
nss_base_passwd ou=Users,dc=home,dc=ru?one
nss_base_shadow ou=Users,dc=home,dc=ru?one
nss_base_group ou=Groups,dc=home,dc=ru?one
3. /etc/ldap.secret - здесь должен содержаться пароль администратора
ldap в plain-виде и с обязательным переносом строки в конце строки
пароля. Права на файл root:root 400.
4. /etc/pam.d/system-auth
#%PAM-1.0
auth sufficient /lib/security/pam_tcb.so shadow fork prefix=$2a$
count=8 nullok
auth required /lib/security/pam_ldap.so use_first_pass
account sufficient /lib/security/pam_tcb.so shadow fork
account required /lib/security/pam_ldap.so
password required /lib/security/pam_passwdqc.so min=disabled,24,12,8,7
max=40 passphrase=3 match=4 similar=deny random=42 enforce=users
retry=3
password sufficient /lib/security/pam_ldap.so use_authok
password required /lib/security/pam_tcb.so use_authtok shadow fork
prefix=$2a$ count=8 write_to=tcb
session required /lib/security/pam_limits.so
session sufficient /lib/security/pam_ldap.so
session required /lib/security/pam_tcb.so nolog
5. /etc/pam.d/system-auth-use_first_pass
#%PAM-1.0
auth sufficient /lib/security/pam_tcb.so shadow fork prefix=$2a$
count=8 nullok use_first_pass
auth required /lib/security/pam_ldap.so use_first_pass
password sufficient /lib/security/pam_ldap.so use_authok
password required /lib/security/pam_tcb.so use_authtok shadow fork
prefix=$2a$ count=8 write_to=tcb
После данных операций вы получите систему, в которой пользователи
могут содержаться как в системных файлах /etc/passwd , так и в ldap.
Для добавления пользователей samba предварительно потребуется
создавать в ldap posixAccount (либо создавая ldif-файл, либо оперируя
специальными утилитами, например, те же ldap-tools Григория
Ситкарева). После чего командой smbpasswd задавать пользователя samba.
Утилита net
Для управления Samba и удалёнными CIFS серверами можно использовать
утилиту net, которая теперь входит в состав пакета samba3. О полном
списке её возможностей можно ознакомиться на man-страницах net.
Упоминаю её здесь, потому что для некоторых операций: net user|group
.. , будет запрашиваться пароль пользователя root. Соотвественно при
использовании схемы с LDAP вам потребуется поместить в LDAP учётную
запись пользователя root и задать для неё nt-пароль. Важно что у
пользователя root аттрибуты sambaSID, sambaPrimaryGroupSID должны
иметь вид:
sambaSID: DOMAINSID-1000
sambaPrimaryGroupSID: DOMAINSID-1001
Связано это с тем, что ldapsam использует специальный алгоритм для
связи uid с sid:
rid='2*uidNumber+1000'
primaryGroup='2*uidNumber+1001'
Соотвественно при uid,gid=0 получаем значения 1000 и 1001.
Например:
### root.ldif ###
dn: uid=root,ou=Users,dc=home,dc=ru
uid: root
sambaSID: S-1-5-21-3153401187-884309351-300090610-1000
sambaPrimaryGroupSID: S-1-5-21-3153401187-884309351-300090610-1001
displayName: root
sambaPwdCanChange: 1056998752
sambaPwdMustChange: 1058813152
sambaLMPassword: 180887AAAABBBBCCCDDDA26A841A86FA
sambaNTPassword: 069CCCDDDA26A8453887AAAABDDD3C48
sambaPwdLastSet: 1056998752
sambaAcctFlags: [U ]
objectClass: account
objectClass: sambaSamAccount
# ldapadd -W -x -D "cn=root,dc=home,dc=ru" -f root.ldif
# smbpasswd root
После этого при использовании утилиты net в качестве пароля root надо
вводить именно тот пароль который вы задали утилитой smbpasswd (но
никак не пароль системного пользователя root :).
Утилита pdbedit
Утилита pdbedit служит для управления пользовательскими аккаунтами в
SAM-базе (независимо от типа бекэнда: tdb, ldap, smbpasswd..). Она
может служить хорошей заменой smbpasswd.
Здесь я опишу несколько полезных опций при работе с этой утилитой:
# показывает список всех пользователей
pdbedit -L
# более информативный листинг
pdbedit -L -v
# добавление пользователя USER
pdbedit -a -u USER
# добавление аккаунта машины machine
pdbedit -a -m -u machine
# установка сетевого пути к домашнему каталогу пользователю USER
pdbedit -h "\\\\HOME\\USER" -u USER
# сетевой путь к скрипту подключения пользователя USER
pdbedit -s "\\\\HOME\\netlogon\\USER.cmd" -u USER
# полное имя пользователя
pdbedit -f "USER of HOME" -u USER
С другими опциями можно ознакомиться в man pdbedit.
Пока всё.
Обо всех ошибках и неточностях рапортуйте на мыло <crux@syktsu.ru. >
или на форум http://unix.nordcomp.ru/forum.html
Использованные источники
1. Samba HOWTO Collection
http://ru.samba.org/samba/docs/
2. Samba (v.3) PDC LDAP howto
http://www.unav.es/cti/ldap-smb/ldap-smb-3-howto.html
Время создания: 2003-12-29 15:01:25
© Сыктывкарское сообщество UNIX, 2002 - 2003 г.
1.1 , mr_Y (? ), 10:08, 17/02/2005 [ответить ]
+ /–
Позновательная статейка, НО
Samba 3.0 и выше не понимает параметра ADMIN USERS=CRUX. Назначение группы администраторов происходит при помощи команды NET ... Читаем Samba-HOWTO-Collection-3.pdf из WWW.SAMBA.ORG, а также пробуем.
1.2 , crypta (? ), 14:57, 11/03/2005 [ответить ]
+ /–
access to attrs=lmPassword,ntPassword
такой фигни в схеме к самба 3 нету. афтар, пофиксь!
2.4 , Tree (? ), 11:37, 27/11/2005 [^ ] [^^ ] [^^^ ] [ответить ]
+ /–
Такаое в Самбе есть... Открываеш схему, и раскоментируешь то, что ты не можешь найти....
1.3 , Cj (? ), 15:15, 02/06/2005 [ответить ]
+ /–
2 crypta и ко всем хто наступит на грабли :-)
вместо
access to attrs=lmPassword,ntPassword
надо писать access to attrs=sambaLMPassword,sambaNTPassword
более подробно можно поковырять samba.schema
так что такие вот дела.
1.6 , SID (? ), 00:19, 11/07/2007 [ответить ]
+ /–
Непонятно почему, но samba отказывается коннектиться к LDAP. В лог валятся две ошибки:
[11:00.00]lib/smbldap.c:smb_ldap_start_tls
Failed to issue the StartTLS instruction: Connect error
[11:00.01]lib/smbldap.c:another_ldap_try
Connection to LDAP server failed for the 1 try!
Если попробовать закомментировать в smb.conf строчку ldap ssl = start tls тогда харрактер ошибки меняется на:
[11:00.00]services/services_db.c:svcctl_init_keys
init_services_keys: key lookup failed! (WERR_ACCESS_DENIED)
ERROR: failed to setup guest info.
Конфиги аналогичны описываемым в статье. Сам сервер LDAP работает судя по выводу команды ldapsearch, хотя запрос проходит только по ldap, а ldaps выдает Can't contact LDAP server (-1) additional info: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Система: Fedora core 6
openssl-0.9.8b-8.3.fc6
openssl-devel-0.9.8b-8.3.fc6
samba-common-3.0.24-7.fc6
samba-client-3.0.24-7.fc6
samba-3.0.24-7.fc6
Посоветуйте что делать и куда копать.
2.7 , Прохожий (?? ), 11:09, 14/08/2007 [^ ] [^^ ] [^^^ ] [ответить ]
+ /–
насколько я понял, дело в самоподписанности сертификатов ldap (у меня приблизительно то же самое, но к ldapsearch таки присоединяется к ldaps://... правда, только с ключом "-x")
Вот как теперь сказать sambе использовать аналог ключа "-х" у ldapsearch? (не проверять сертификат сервера)
1.9 , Misteri0 (? ), 11:31, 29/01/2008 [ответить ]
+ /–
при попытке сделать
net getlocalsid
вываливается
lib/smbldap.c:smbldap_connet_system(982)
failed to bind to server ldap://ldap.mysrv.com with dn="cn=root,dc=mysrv,dc=com" Error: Cant't contact LDAP server
(unknoun)
utils/net.c net_getlocalsid(622)
Can't fetch domain SID