Smbldap-tools. Руководство пользователяJ.erome Tournier Перевод Тренин Сергей, аkа greyzy Версия : 1.7, от 22 апреля, 2008
Руководство применимо к версии Оригинал документа является собственностью IDEALX (http://IDEALX.com), распространяется под условием лицензии GNU Free Documentation License (http://www.gnu.org/copyleft/fdl.html) Обновление этого документа
Последняя версия этого документа может быть получена на странице проекта smbldap-tools по адресу http://gna.org/projects/smbldap-tools.
От переводчика: Данный документ может быть вам полезен в случае, если вы собираетесь поднять, или у вас уже есть действующий первичный контроллер домена на linux,
в качестве клиентов которого будут выступать рабочие станции Windows XP. Инструменты, описываемые здесь, позволяют упростить управление учетными записями
пользователей, групп и компьютеров на PDC, поднятом на связке Samba+LDAP.
1.1 ОпробованиеИнструмент smbldap-tools был опробован и протестирован на следующем программном обеспечении:- Linux CentOS4 (это будет работать на любой платформе); - Samba release 3.0.10; - OpenLDAP release 2.2.13; - Microsoft Windows NT 4.0, Windows 2000 and Windows XP Workstations and Servers. (к началу страницы)
2. Установка2.1 Требования к программному обеспечениюОсновное требование для использования smbldap-tools является наличие двух модулей Net::LDAP и Crypt::SmbHash. В большинстве случаев, вам потребуется модуль IO-Socket-SSL Perl для использования TLS.Если вы хотите иметь возможность добавления, удаления, модификации пользователей и групп при помощи диспетчера пользователей под MS-Windows, сервер Samba и пакет smbldap-tools должны быть установлены на одном компьютере. Openldap может быть установлен на каком-либо другом компьютере. Но обязательно проверьте, чтобы ваш LDAP-клиент мог подключиться к серверу LDAP.
В этом документе не обсуждается установка Samba и OpenLDAP (но пакет Samba должен быть установлен с поддержкой LDAP, прим.перев.).
2.2 УстановкаАрхив со скриптами smbldap-tools может быть загружен со страницы нашего проекта по адресу http://download.gna.org/smbldap-tools/packages. Так же здесь доступен архив для RadHat. Если вы получили версию, более новую, чем описана здесь, перед установкой прочитайте файл INSTALL.(к началу страницы) 2.2.1 Установка из rpm-пакетаЕсли у вас не RadHat, загрузите архив smbldap-tools-0.9.3.tar.gz. Распакуйте и скопируйте все Perl-скрипты в директорию/usr/sbin/ ,
также создайте директорию /etc/smbldap-tools/ и скопируйте туда два конфигурационных файла:
Все конфигурирование smbldap-tools базируется на двух файлах:
Второй файл должен быть доступен для чтения только root. Установите такие права на эти файлы:
3. Конфигурирование smbldap-toolsКак было сказано выше, для конфигурирования используется всего два файла. Первый –smbldap.conf – позволяет вам установить общие параметры,
и он доступен на чтение любому. Второй – smbldap_bind.conf – определяет два административных аккаунта для связи с первичным и вторичным
(главным и подчиненным) LDAP-серверами, вы должны позаботиться, чтобы он был доступен на чтение только суперпользователю root. Скрипт configure.pl ,
который вы можете найти в tarball или в директории с документацией (если установка была из prm-пакета) /usr/share/doc/smbldap-tools-0.9.3/ ,
поможет вам заполнить эти файлы, выполните команду:
Вследствие выполнения этого скрипта, будут получены параметры файла
Проверьте перед использованием этого скрипта, что:
3.1 Файл smbldap.confНапоминаем, этот файл задает параметры, которые доступны для просмотра всем. Пример этого файла представлен в п. 8.1.1Давайте рассмотрим параметры этого файла:
Рассмотрим параметры этого файла.
4. Использование скриптов4.1 Создание структуры каталогаВы можете сделать начальную структуру LDAP каталога, используя скриптsmbldap-populate . Чтобы сделать это, проверьте, что учетная запись, описанная в файле
/etc/smbldap-tools/smbldap_bind.conf , которая имеет полномочия для связи с первичный LDAP сервером, так же является административной учетной записью вашего LDAP каталога.
Ключи, которые могут быть использованы при запуске скрипта Таблица 1
В большинстве случаев для построения структуры LDAP каталога достаточно выполнить команду:
После этого шага, если вы больше не хотите использовать учетную запись
Строка
4.2 Управление пользователями4.2.1 Добавление пользователейДля добавления пользователей используется скриптsmbldap-useradd . Ключи, которые могут быть использованы при его запуске, представлены в таблице 2.
Пояснение: в четвертой колонке есть строки со значениями, которые начинаются с символа $. Значения таких ключей, если не назначены специально,
берутся из файла Таблица 2
Например, если вы хотите создать пользователя с именем то следует ввести команду:
Еще несколько примеров (из Интернет, прим.перев.):
4.2.2 Удаление пользователейДля удаления учетной записи пользователя используется скриптsmbldap-userdel , в таблице 3 представлены доступные ключи запуска:
Таблица 3
Например, если вы хотите удалить пользователя
Примечание: с осторожностью используйте ключ
4.2.3 Внесение изменений в учетную запись пользователяДля внесения изменений в учетную запись пользователя используется скриптsmbldap-usermod . Ключи, используемые с этим скриптом, вынесены в таблицу 4.
Наряду с этим, для внесения некоторых изменений в учетные данные, используется скрипт smbldap-userinfo . Ключи, используемые с этим скриптом, вынесены в таблицу 5.
Этот скрипт может быть использован самими пользователями для внесения некоторых данных в их учетную запись (ACL должен быть должным образом настроен на сервере каталогов).
Таблица 4
Таблица 5
4.3 Управление группами4.3.1 Создание группДля добавления новой группы в LDAP каталог используется скриптsmbldap-groupadd . Ключи, которые могут быть использованы при запуске этого скрипта,
представлены в таблице 6.
Таблица 6
Например, так вы можете создать группу
4.3.2 Удаление группыДля удаления группы используется скриптsmbldap-userdel , например, для удаления группы group1 следует выполнить команду:
4.4 Добавление пользователя доверенного доменаДля добавления учетной записи доверенного домена на контроллере доменаtrust-pdc , используйте ключ –i команды smbldap-useradd
Работа скрипта будет окончена после запроса на ввод пароля доверенного пользователя. Учетная запись будет создан в том месте каталога, где хранятся записи
обо всех компьютерах (по умолчанию это
5. Samba и smbldap-tools5.1 Основное конфигурированиеSamba может быть сконфигурирована с использованием поддержки smbldap-tools. Это позволит администраторам добавлять, удалять или изменять группы и учетные записи пользователей операционной системы MS Windows, используя для этого, например, диспетчер пользователей. Для приведенной возможности следует добавить в файлsmb.conf следующие команды:
Примечание: также могут быть добавлены команды
5.2 Миграция PDC c NT4 на Samba 3Процедура переноса учетных записей по настоящему проста, если сервер Samba сконфигурирован с использованием smbldap-tools. Файлsmb.conf должен включать
команды для управления пользователями, группами и компьютерами (см. п. 5.1).
Процесс миграции детально описан
в главе 36 Samba Howto «MIGRATION FROM NT4 PDC TO SAMBA-3 PDC».
6. Часто задаваемые вопросы6.1 Могу ли я использовать старые версии uidNumber и gidNumber ?Есть два пути для решения этого вопроса:
- измените строку
А затем выполнить команду:
- используйте ключи
6.2 Я получаю ошибку «Can’t locate IO/Socket/SSL.pm»Это происходит, когда вы хотите использовать сертификат. В этом случае вам следует установить IOSocket-SSL Perl module.(к началу страницы)
6.3 Я не могу создать начальную структуру каталога при помощи
Когда я запускаю этот скрипт, я получаю такое сообщение об ошибке:
|
# smbldap-populate.pl Using builtin directory structure adding new entry: dc=IDEALX,dc=COM Can’t call method "code" without a package or object reference at /usr/local/sbin/smbldap-populate.pl line 270, |
Проверьте конфигурацию TLS
- если вы не хотите иметь поддержку TLS, установите в файле /etc/smbldap-tools/smbldap.conf
следующий параметр на значение «0»
ldapTLS="0" |
- если вы хотите иметь поддержку TLS, установите в файле /etc/smbldap-tools/smbldap.conf
этот параметр на значение «1»
ldapTLS="1" |
и проверьте, что сервер LDAP каталога сконфигурирован с поддержкой TLS соединений.
(к началу страницы)
sambaSAMaccount
;add machine script
есть и правильно описана.
add machine script
не должна добавлять учетной записи компьютера класс объекта sambaSamAccount
, эта команда должна лишь добавить
Posix аккаунт компьютера. Samba добавит класс объекта sambaSamAccount
при вводе компьютера в домен;add machine script
есть в файле smb.conf
.
Function Not Implemented at /usr/local/sbin/smbldap_tools.pm line 187. Function Not Implemented at /usr/local/sbin/smbldap_tools.pm line 627. |
в базе данных Oracle проверьте, все ли атрибуты, по которым будут выполнятся запросы, индексированы. Добавьте новый индекс для Samba и удостоверьтесь,
что следующие атрибуты также индексированы: uidNumber
, gidNumber
, memberUid
, homedirectory
,
description
, userPassword
...
(к началу страницы)
/usr/local/sbin/smbldap-passwd -u %u
не работает, или я получаю сообщение об ошибке, когда меняю
пароль из под Windows
unix password sync = Yes |
Примечание: также вы должны записать строку
passwd sync = Yes |
- эта команда лишь обновит атрибут userPassword
. Это из-за ключа –u
. Пароли samba будут обновлены самой Samba;
- команда passwd chat
должна выполняться согласованно с командой smbldap-passwd
.
(к началу страницы)
cn=Computers
smbldap-useradd
, я получаю следующую ошибку:
/usr/local/sbin/smbldap-useradd.pl: unknown group SID not set for unix group 513 |
проверьте:
- корректно ли настроен nss ldap
?
- присоединена (map) ли группа пользователя, в которую он входит по умолчанию, к группе NT "Domain Users"? Для этого вы можете использовать такую команду:
net groupmap add rid=513 unixgroup="Domain Users" ntgroup="Domain Users" |
smbldap-useradd
, я получаю следующую ошибку:
Can’t call method ”get value” on an undefined value at /usr/local/sbin/smbldap-useradd line 154 |
- существует ли группа, в которую по умолчанию помещается новый пользователь (defaultUserGid="513"
)?
- присоединена (map) ли группа NT "Domain Users" к группе unix, имеющей rid 513
? (для установки rid
см. ключ –r
для команд smbldap-groupadd
и smbldap-groupmod
).
(к началу страницы)
Could not find base dn, to get next uidNumber at /usr/local/sbin/smbldap_tools.pm |
Причина:
- вы не можете создать объект, так как невозможно определить следующий по порядку uidNumber
или gidNumber
.
Решение:
- для версии 0.8.7: единственное, что вы можете сделать, это запустить скрипт smbldap-populate
и обновить значения sambaDomain
, в которых хранится эта информация;
- для версии ранее 0.8.7: вы должны обновить свой пакет smbldap-tools, затем создайте LDIF-файл примерно такого содержания:
dn: cn=NextFreeUnixId,dc=idealx,dc=org objectClass: inetOrgPerson objectClass: sambaUnixIdPool uidNumber: 1000 gidNumber: 1000 cn: NextFreeUnixId sn: NextFreeUnixId |
И внесите эти сведения в LDAP каталог:
ldapadd -x -D "cn=Manager,dc=idealx,dc=org" -w secret -f add.ldif |
Где 1000, это первое доступное значение uidNumber
и gidNumber
(разумеется, если это значение уже используется каким-либо пользователем или группой,
используйте следующий за ним номер uid
или gid
).
- я получаю следующую ошибку:
Use of uninitialized value in string at /usr/local/sbin//smbldap\_tools.pm line 914. Error: No DN specified at /usr/local/sbin//smbldap\_tools.pm line 919 |
Решение:
конфигурационный файл с описанными объектами и с доступными номерами uidNumber
и gidNumber
следует исправить. В нашем примере
вы должны добавить следующую строку в файл /etc/smbldap-tools/smbldap.conf
:
# Where to store next uidNumber and gidNumber available sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}" |
- я получаю следующую ошибку:
Use of uninitialized value in concatenation (.) or string at /usr/local/sbin/smbldap-useradd Use of uninitialized value in substitution
(s///) at /usr/local/sbin/smbldap-useradd line Use of uninitialized value in string at /usr/local/sbin/smbldap-useradd line 264.
failed to add entry: homedirectory: value #0 invalid per syntax at /usr/local/sbin/smbldap-userHomeDirectory=User "jto"
already member of the group "513".
failed to add entry: No such object at /usr/local/sbin/smbldap-useradd line 382.
|
Решение:
вы должны изменить имя переменной userHomePrefix
на userHome
в файле /etc/smbldaptools/smbldap.conf
.
- я получаю следующую ошибку:
failed to add entry: referral missing at /usr/local/sbin/smbldap-useradd line 279 |
Решение:
вы должны исправить конфигурационный файл, в котором определяются dn
пользователей, групп и компьютеров. Эти параметры не должны соответствовать
параметру suffix
. Типичная конфигурация показана ниже:
usersdn="ou=Users,${suffix}" computersdn="ou=Computers,${suffix}" groupsdn="ou=Groups,${suffix}" |
- я получаю следующую ошибку:
erreur LDAP: Can’t contact master ldap server (IO::Socket::INET: Bad protocol ’tcp’) at /usr/local/sbin//smbldap_tools.pm line 153. |
Решение:
удалите запись ldap
из файла /etc/nsswitch.conf
, то есть у вас должна быть запись
services files |
а не
services: ldap [NOTFOUND=return] files |
J.erome Tournier (jerome.tournier@IDEALX.com)
David Barth (david.barth@IDEALX.com)
Nat Makarevitch (nat@IDEALX.com)
Авторы благодарят следующих людей за предоставление помощи в некоторых более запутанных вопросах, за прояснение некоторых внутренних аспектов работы пакетов
Samba и OpenLDAP, за указание на ошибки или заблуждения в первичной версии этого документа, за советы и предложения:
Команда IDEALX team:
Romeo Adekambi (romeo.adekambi@IDEALX.com)
Aurelien Degremont (adegremont@IDEALX.com)
Renaud Renard (rrenard@IDEALX.com)
John H Terpstra (jht@samba.org)
(к началу страницы)
/etc/smbldap-tools/smbldap.conf
# $Source: $ # $Id: smbldap.conf,v 1.18 2005/05/27 14:28:47 jtournier Exp $ # # smbldap-tools.conf : Q & D configuration file for smbldap-tools # # This code was developped by IDEALX (http://IDEALX.org/) and # contributors (their names can be found in the CONTRIBUTORS file). # # Copyright (C) 2001-2002 IDEALX # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, # USA. # Purpose : # . be the configuration file for all smbldap-tools scripts ################################################## # # General Configuration # ################################################## # Put your own SID. To obtain this number do: "net getlocalsid". # If not defined, parameter is taking from "net getlocalsid" return SID="S-1-5-21-2252255531-4061614174-2474224977" # Domain name the Samba server is in charged. # If not defined, parameter is taking from smb.conf configuration file # Ex: sambaDomain="IDEALX-NT" sambaDomain="DOMSMB" ################################################### # # LDAP Configuration # ################################################### # Notes: to use to dual ldap servers backend for Samba, you must patch # Samba with the dual-head patch from IDEALX. If not using this patch # just use the same server for slaveLDAP and masterLDAP. # Those two servers declarations can also be used when you have # . one master LDAP server where all writing operations must be done # . one slave LDAP server where all reading operations must be done # (typically a replication directory) # Slave LDAP server # Ex: slaveLDAP=127.0.0.1 # If not defined, parameter is set to "127.0.0.1" slaveLDAP="ldap.iallanis.info" # Slave LDAP port # If not defined, parameter is set to "389" slavePort="389" # Master LDAP server: needed for write operations # Ex: masterLDAP=127.0.0.1 # If not defined, parameter is set to "127.0.0.1" masterLDAP="ldap.iallanis.info" # Master LDAP port # If not defined, parameter is set to "389" #masterPort="389" masterPort="389" # Use TLS for LDAP # If set to 1, this option will use start_tls for connection # (you should also used the port 389) # If not defined, parameter is set to "0" ldapTLS="1" # Use SSL for LDAP # If set to 1, this option will use SSL for connection # (standard port for ldaps is 636) # If not defined, parameter is set to "0" ldapSSL="0" # How to verify the server’s certificate (none, optional or require) # see "man Net::LDAP" in start_tls section for more details verify="require" # CA certificate # see "man Net::LDAP" in start_tls section for more details cafile="/etc/smbldap-tools/ca.pem" # certificate to use to connect to the ldap server # see "man Net::LDAP" in start_tls section for more details clientcert="/etc/smbldap-tools/smbldap-tools.iallanis.info.pem" # key certificate to use to connect to the ldap server # see "man Net::LDAP" in start_tls section for more details clientkey="/etc/smbldap-tools/smbldap-tools.iallanis.info.key" # LDAP Suffix # Ex: suffix=dc=IDEALX,dc=ORG suffix="dc=iallanis,dc=info" # Where are stored Users # Ex: usersdn="ou=Users,dc=IDEALX,dc=ORG" # Warning: if ’suffix’ is not set here, you must set the full dn for usersdn usersdn="ou=Users,${suffix}" # Where are stored Computers # Ex: computersdn="ou=Computers,dc=IDEALX,dc=ORG" # Warning: if ’suffix’ is not set here, you must set the full dn for computersdn computersdn="ou=Computers,${suffix}" # Where are stored Groups # Ex: groupsdn="ou=Groups,dc=IDEALX,dc=ORG" # Warning: if ’suffix’ is not set here, you must set the full dn for groupsdn groupsdn="ou=Groups,${suffix}" # Where are stored Idmap entries (used if samba is a domain member server) # Ex: groupsdn="ou=Idmap,dc=IDEALX,dc=ORG" # Warning: if ’suffix’ is not set here, you must set the full dn for idmapdn idmapdn="ou=Idmap,${suffix}" # Where to store next uidNumber and gidNumber available for new users and groups # If not defined, entries are stored in sambaDomainName object. # Ex: sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}" # Ex: sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}" sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}" # Default scope Used scope="sub" # Unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA, CLEARTEXT) hash_encrypt="SSHA" # if hash_encrypt is set to CRYPT, you may set a salt format. # default is "%s", but many systems will generate MD5 hashed # passwords if you use "$1$%.8s". This parameter is optional! crypt_salt_format="%s" ##################################################### # # Unix Accounts Configuration # ##################################################### # Login defs # Default Login Shell # Ex: userLoginShell="/bin/bash" userLoginShell="/bin/bash" # Home directory # Ex: userHome="/home/%U" userHome="/home/%U" # Default mode used for user homeDirectory userHomeDirectoryMode="700" # Gecos userGecos="System User" # Default User (POSIX and Samba) GID defaultUserGid="513" # Default Computer (Samba) GID defaultComputerGid="515" # Skel dir skeletonDir="/etc/skel" # Default password validation time (time in days) Comment the next line if # you don’t want password to be enable for defaultMaxPasswordAge days (be # careful to the sambaPwdMustChange attribute’s value) defaultMaxPasswordAge="45" ##################################################### # # SAMBA Configuration # ##################################################### # The UNC path to home drives location (%U username substitution) # Just set it to a null string if you want to use the smb.conf ’logon home’ # directive and/or disable roaming profiles # Ex: userSmbHome="\\PDC-SMB3\%U" userSmbHome="\\PDC-SRV\%U" # The UNC path to profiles locations (%U username substitution) # Just set it to a null string if you want to use the smb.conf ’logon path’ # directive and/or disable roaming profiles # Ex: userProfile="\\PDC-SMB3\profiles\%U" userProfile="\\PDC-SRV\profiles\%U" # The default Home Drive Letter mapping # (will be automatically mapped at logon time if home directory exist) # Ex: userHomeDrive="H:" userHomeDrive="H:" # The default user netlogon script name (%U username substitution) # if not used, will be automatically username.cmd # make sure script file is edited under dos # Ex: userScript="startup.cmd" # make sure script file is edited under dos userScript="logon.bat" # Domain appended to the users "mail"-attribute # when smbldap-useradd -M is used # Ex: mailDomain="idealx.com" mailDomain="iallanis.info" ###################################################### # # SMBLDAP-TOOLS Configuration (default are ok for a RedHat) # ###################################################### # Allows not to use smbpasswd (if with_smbpasswd == 0 in smbldap_conf.pm) but # prefer Crypt::SmbHash library with_smbpasswd="0" smbpasswd="/usr/bin/smbpasswd" # Allows not to use slappasswd (if with_slappasswd == 0 in smbldap_conf.pm) # but prefer Crypt:: libraries with_slappasswd="0" slappasswd="/usr/sbin/slappasswd" # comment out the following line to get rid of the default banner # no_banner="1" |
/etc/smbldap-tools/smbldap_bind.conf
############################ # Credential Configuration # ############################ # Notes: you can specify two differents configuration if you use a # master ldap for writing access and a slave ldap server for reading access # By default, we will use the same DN (so it will work for standard Samba # release) slaveDN="cn=Manager,dc=iallanis,dc=info" slavePw="secret" masterDN="cn=Manager,dc=iallanis,dc=info" masterPw="secret" |
/etc/samba/smb.conf
# Global parameters [global] workgroup = DOMSMB netbios name = PDC-SRV security = user enable privileges = yes #interfaces = 192.168.5.11 #username map = /etc/samba/smbusers server string = Samba Server %v #security = ads encrypt passwords = Yes min passwd length = 3 #pam password change = no #obey pam restrictions = No # method 1: #unix password sync = no #ldap passwd sync = yes # method 2: unix password sync = yes ldap passwd sync = no passwd program = /usr/sbin/smbldap-passwd -u "%u" passwd chat = "Changing *\nNew password*" %n\n "*Retype new password*" %n\n" log level = 0 syslog = 0 log file = /var/log/samba/log.%U max log size = 100000 time server = Yes socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 mangling method = hash2 Dos charset = 850 Unix charset = ISO8859-1 logon script = logon.bat logon drive = H: logon home = logon path = domain logons = Yes domain master = Yes os level = 65 preferred master = Yes wins support = yes # passdb backend = ldapsam:"ldap://ldap1.company.com ldap://ldap2.company.com" passdb backend = ldapsam:ldap://127.0.0.1/ ldap admin dn = cn=Manager,dc=company,dc=com #ldap admin dn = cn=samba,ou=DSA,dc=company,dc=com ldap suffix = dc=company,dc=com ldap group suffix = ou=Groups ldap user suffix = ou=Users ldap machine suffix = ou=Computers #ldap idmap suffix = ou=Idmap add user script = /usr/sbin/smbldap-useradd -m "%u" #ldap delete dn = Yes delete user script = /usr/sbin/smbldap-userdel "%u" add machine script = /usr/sbin/smbldap-useradd -t 0 -w "%u" add group script = /usr/sbin/smbldap-groupadd -p "%g" #delete group script = /usr/sbin/smbldap-groupdel "%g" add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g" delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g" set primary group script = /usr/sbin/smbldap-usermod -g ’%g’ ’%u’ # printers configuration #printer admin = @"Print Operators" load printers = Yes create mask = 0640 directory mask = 0750 #force create mode = 0640 #force directory mode = 0750 nt acl support = No printing = cups printcap name = cups deadtime = 10 guest account = nobody map to guest = Bad User dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd show add printer wizard = yes ; to maintain capital letters in shortcuts in any of the profile folders: preserve case = yes short preserve case = yes case sensitive = no [netlogon] path = /home/netlogon/ browseable = No read only = yes [profiles] path = /home/profiles read only = no create mask = 0600 directory mask = 0700 browseable = No guest ok = Yes profile acls = yes csc policy = disable # next line is a great way to secure the profiles #force user = %U # next line allows administrator to access all profiles #valid users = %U "Domain Admins" [printers] comment = Network Printers #printer admin = @"Print Operators" guest ok = yes printable = yes path = /home/spool/ browseable = No read only = Yes printable = Yes print command = /usr/bin/lpr -P%p -r %s lpq command = /usr/bin/lpq -P%p lprm command = /usr/bin/lprm -P%p %j # print command = /usr/bin/lpr -U%U@%M -P%p -r %s # lpq command = /usr/bin/lpq -U%U@%M -P%p # lprm command = /usr/bin/lprm -U%U@%M -P%p %j # lppause command = /usr/sbin/lpc -U%U@%M hold %p %j # lpresume command = /usr/sbin/lpc -U%U@%M release %p %j # queuepause command = /usr/sbin/lpc -U%U@%M stop %p # queueresume command = /usr/sbin/lpc -U%U@%M start %p [print$] path = /home/printers guest ok = No browseable = Yes read only = Yes valid users = @"Print Operators" write list = @"Print Operators" create mask = 0664 directory mask = 0775 [public] path = /tmp guest ok = yes browseable = Yes writable = yes |
/etc/openldap/slapd.conf
# # See slapd.conf(5) for details on configuration options. # This file should NOT be world readable. # include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/samba.schema schemacheck on # Allow LDAPv2 client connections. This is NOT the default. allow bind_v2 # Do not enable referrals until AFTER you have a working directory # service AND an understanding of referrals. #referral ldap://root.openldap.org pidfile /var/run/slapd.pid argsfile /var/run/slapd.args # Load dynamic backend modules: # modulepath /usr/sbin/openldap # moduleload back_bdb.la # moduleload back_ldap.la # moduleload back_ldbm.la # moduleload back_passwd.la # moduleload back_shell.la # The next three lines allow use of TLS for encrypting connections using a # dummy test certificate which you can generate by changing to # /usr/share/ssl/certs, running "make slapd.pem", and fixing permissions on # slapd.pem so that the ldap user or group can read it. Your client software # may balk at self-signed certificates, however. #TLSCertificateFile /etc/openldap/ldap.company.com.pem #TLSCertificateKeyFile /etc/openldap/ldap.company.com.key #TLSCACertificateFile /etc/openldap/ca.pem #TLSCipherSuite :SSLv3 # Sample security restrictions # Require integrity protection (prevent hijacking) # Require 112-bit (3DES or better) encryption for updates # Require 63-bit encryption for simple bind # security ssf=1 update_ssf=112 simple_bind=64 # Sample access control policy: # Root DSE: allow anyone to read it # Subschema (sub)entry DSE: allow anyone to read it # Other DSEs: # Allow self write access # Allow authenticated users read access # Allow anonymous users to authenticate # Directives needed to implement policy: # access to dn.base="" by * read # access to dn.base="cn=Subschema" by * read # access to * # by self write # by users read # by anonymous auth # # if no access controls are present, the default policy # allows anyone and everyone to read anything but restricts # updates to rootdn. (e.g., "access to * by * read") # # rootdn can always read and write EVERYTHING! ####################################################################### # ldbm and/or bdb database definitions ####################################################################### database bdb suffix "dc=company,dc=com" rootdn "cn=Manager,dc=company,dc=com" # Cleartext passwords, especially for the rootdn, should # be avoided. See slappasswd(8) and slapd.conf(5) for details. # Use of strong authentication encouraged. rootpw secret # rootpw {crypt}ijFYNcSNctBYg # The database directory MUST exist prior to running slapd AND # should only be accessible by the slapd and slap tools. # Mode 700 recommended. directory /var/lib/ldap lastmod on # Indices to maintain for this database index objectClass eq,pres index ou,cn,sn,mail,givenname eq,pres,sub index uidNumber,gidNumber,memberUid eq,pres index loginShell eq,pres ## required to support pdb_getsampwnam index uid pres,sub,eq ## required to support pdb_getsambapwrid() index displayName pres,sub,eq index nisMapName,nisMapEntry eq,pres,sub index sambaSID eq index sambaPrimaryGroupSID eq index sambaDomainName eq index default sub # users can authenticate and change their password access to attrs=userPassword,sambaNTPassword,sambaLMPassword,sambaPwdMustChange,sambaPwdLastSet by dn="cn=Manager,dc=company,dc=com" write by self write by anonymous auth by * none # those 2 parameters must be world readable for password aging to work correctly # (or use a priviledge account in /etc/ldap.conf to bind to the directory) access to attrs=shadowLastChange,shadowMax by dn="cn=Manager,dc=company,dc=com" write by self write by * read # all others attributes are readable to everybody access to * by * read # Replicas of this database #replogfile /var/lib/ldap/openldap-master-replog #replica host=ldap-1.example.com:389 starttls=critical # bindmethod=sasl saslmech=GSSAPI # authcId=host/ldap-master.example.com@EXAMPLE.COM |
ldap admin dn
в файле smb.conf
)cn=Manager,dc=idealx,dc=com
, вы можете создать специальную
учетную запись для сервера Samba и набора скриптов smbldap-tools. Чтобы сделать это, заведем пользователя с именем, например samba
при помощи
следующей команды (для подробностей в синтаксисе данной команды обратитесь к п. 4.2.1):
# smbldap-useradd -s /bin/false -d /dev/null -P samba |
После ввода этой команды вам будет предложено ввести пароль для создаваемого пользователя, в нашем примере он тоже будет samba
.
После этого измените соответствующим образом файл /etc/smbldap-tools/smbldap_bind.conf
:
slaveDN="uid=samba,ou=Users,dc=idealx,dc=com" slavePw="samba" masterDN="uid=samba,ou=Users,dc=idealx,dc=com" masterPw="samba" |
файл /etc/samba/smb.conf
:
#ldap admin dn = uid=samba,ou=Users,dc=idealx,dc=com |
Не забудьте после этого записать пароль в файл secrets.tdb
:
#smbpasswd -w samba |
в файле /etc/openldap/slapd.conf
вам стоит добавить полномочий пользователю samba
:
# users can authenticate and change their password
|
-B
(пользователь должен изменить свой пароль) команды smbldap-useradd
не работает: когда вызывается команда
smbldap-passwd
, атрибут sambaPwdMustChange
перезаписывается.