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 перезаписывается.