Перевод: Павел Желтобрюхов (pij@rambler.ru), Евгений Саенко (caspar@pisem.net) Дата: 2002/07/22
Прежде чем Вы
продолжите чтение этого раздела,
пожалуйста, убедитесь в том, что вы
имеете представление о настройке
основных параметров в smb.conf и знаете
как включить шифрование паролей и
администрировать их в Samba. Эти два
понятия рассмотрены в странице
руководства smb.conf(5) и в Encryption chapter Samba
HOWTO Collection
Примечание: Примечание Автора : Этот документ является сочетанием Samba 2.2 PDC HOWTO и Samba NT Domain FAQ Дэвида Бэннона и заменяет их.
Версии Samba до версии 2.2 обладали минимальными возможностями для работы в качестве основного контроллера домена Windows NT 4.0 (Primary Domain Controller, PDC). Начиная с версии 2.2.0, мы с гордостью объявляем официальную поддержку входа в домен в стиле Windows NT 4.0 c рабочих станций Windows NT 4.0 (все версии до SP6 включительно) и Windows 2000 (все версии до SP1 включительно). В этой статье описаны необходимые шаги для настройки Samba в качестве основного контроллера домена. Для этого у Вас уже должен быть работающий Samba сервер. Если вы не выполнили действия, описанные в UNIX_INSTALL.html, убедитесь хотя бы в том, что Ваш сервер перед внесением изменений был настроен правильно. Еще одним надежным помощником для Вас будет smb.conf(5) man page. В версии 2.2 реализованы следующие функции:
Клиенты Windows 2000 Service Pack 2 |
При работе с клиентами Windows 2000 SP2 следует использовать версию Samba, начиная с 2.2.1. |
Что не реализовано в версии 2.2:
Помните, что клиенты Windows 9x не являются действительными членами домена по ряду причин, описанных в этой статье. Поэтому протокол для поддержки входа в домен клиентов Windows 9x полностью отличается от аналогичного протокола для Windows NT4 и будет официально поддерживаться некоторое время.
Построение PDC на базе Samba можно разделить на 2 этапа.
...плюс незначительные детали,
такие как профили пользователей,
системные политики и т.д... При
работе с Samba в качестве
PDC для них не существует каких
либо отличий от аналогичных
понятий в Windows NT, поэтому подробно
они рассматриваться не будут
Первым шагом в создании Samba-контроллера домена будет определение необходимых параметров smb.conf и их значений. Я не буду пытаться описать эти параметры более подробно, чем они описаны в страницах руководства по smb.conf . Для удобства каждый параметр связан со своим реальным описанием в smb.conf.
Ниже показан примерный вариант smb.conf работающего первичного контроллера домена:
[global]
; Основные установки сервера
netbios name = POGO
workgroup = NARNIA
; наш контроллер должен быть локальным
обозревателем и
обозревателем домена
os level = 64
preferred master = yes
domain master = yes
local master = yes
; контроль доступа установим на уровне пользователей
security = user
; для основного контроллера домена необходимы шифрованные пароли
encrypt passwords = yes
; включаем обработку входов в домен
domain logons = yes
; где будут храниться профили пользователей
logon path = \\%N\profiles\%u
; где находятся домашние
каталоги пользователей и на какой сетевой диск они монтируются
logon drive = H:
logon home = \\homeserver\%u
; указываем общий сценарий входа в домен для всех пользователей
; это относительный DOS-путь к ресурсу [netlogon]
logon script = logon.cmd
; ресурс, необходимый контроллеру домена
[netlogon]
path = /usr/local/samba/lib/netlogon
writeable = no
write list = ntadmin
; ресурс для перемещаемых профилей пользователей
[profiles]
path = /export/smb/ntprofile
writeable = yes
create mask = 0600
directory mask = 0700
В двух словах опишем, что же было сделано.
Поскольку в Samba 2.2 не реализовано
полное соответствие между группами
Windows NT и группами UNIX (это слишком
сложно, чтобы рассказать в двух
словах), для создания учетных
записей Администраторов Домена Вам
следует обратиться к информации о
параметрах smb.conf domain
admin users и domain
admin group (В версиях Samba, начиная с 2.2.2
параметр domain admin users исключен - прим.
перев.)
Машинная учетная запись - это учетная запись Samba-пользователя, принадлежащая машине. Пароль этой учетной записи служит ключом для защищенного соединения с Контроллером Домена. Это служит для предотвращения несанкционированного присоединения к домену машин с именем NetBIOS, уже зарегестрированным в домене, и получения доступа к учетным записям групп/пользователей. Следовательно, машина с Windows 9x никогда не будет действительным членом домена, так как не имеет машинной учетной записи и, следовательно, не имеет защищенного соединения с Контроллером Домена.
В случае основного контроллера домена Windows NT, пароли машинных учетных записей хранятся в реестре. В случае основного контроллера домена Samba, эти пароли хранятся вместе с паролями пользователей Samba как хэши паролей LanMan и NT (в файле smbpasswd). Разумеется, машинная учетная запись имеет и использует только хэш паролей NT.
Так как Samba требует наличия у машинной учетной записи наличия UNIX uid, из которго может быть создан код безопасности Windows NT SID , каждая из этих учетных записей должна иметь соответствующую запись в /etc/passwd и smbpasswd. В будущих версиях предполагается, что запись в /etc/passwd не будет столь необходима.
Существует два способа создания машинных учетных записей.
Первый шаг в создании машинной учетной записи вручную - создание соответствующей записи в /etc/passwd. Это может быть сделано с помощью vipw или любой команды 'добавь пользователя' , которая обычно используется для создания новых учетных записей UNIX. Ниже приведен Linux-вариант команды:
root# /usr/sbin/useradd -g 100 -d /dev/null -c "machine nickname" -s /bin/false machine_name$
root# passwd -l machine_name$
В результате в /etc/passwd будет создана запись с именем машины с добавленным знаком $ в конце, без пароля, без командного процессора и без домашнего каталога. Например, для машины с именем 'doppy' запись в /etc/passwd будет выглядеть примерно так:
doppy$:x:505:501:machine_nickname:/dev/null:/bin/false
Здесь machine_nickname может быть любым описательным именем машины, например BasementComputer. machine_name должно быть абсолютно точным NetBIOS именем машины, которая будет присоединена к домену. Знак "$" должен быть обязательно добавлен, иначе Samba примет эту учетную запись за обычную пользовательскую.
Теперь, когда создана учетная запись UNIX, следующим шагом будет создание машинной записи в smbpasswd с известным паролем. Это может быть сделано с помощью команды smbpasswd(8) , как показано ниже:
root# smbpasswd -a -m machine_name
где machine_name - NetBIOS имя
машины.
Немедленно присоедините клиента к домену! |
При создании машинной учетной записи вручную используется тот же метод, что и при создании машинной записи на первичном контроллере домена Windows NT с помощью программы Server Manager. С момента создания учетной записи до момента присоединения клиента к домену и смены им пароля, домен оказывается доступным для вхождения злоумышленника с компьютера с NetBIOS именем, идентичным тому, для которого была создана машинная учетная запись. Первичной контроллер домена безусловно доверяет членам домена и предоставляет им большое количество информации о пользователях домена. Мы Вас предупредили! |
Вторым и самым рекомендуемым методом создания машинных учетных записей является метод создания записей во время присоединения клиента к домену. Для этого вам понадобится настроить параметр smb.conf add user script . Ниже приведен вариант для Linux RedHat 6.2 .
add user script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -M %u
В Samba 2.2.1, только учетная запись
root может быть использована для
создания машинных учетных записей.
Следовательно, необходимо в smbpasswd
создать запись для root. root'овые
пароли UNIX и Samba должны различаться
по соображениям безопасности.
'machine name' в (как правило) /etc/passwd является именем машины с '$' в окончании. FreeBSD (и другие BSD systems ?) не могуи создать пользователя со знаком '$' в имени. Проблема в программе, которую Вы используете для создания записи. Если запись создана, все работает нормально. Создайте запись с именем без '$' и используйте vipw (или любой другой редактор - прим. перев.) для добавления '$' вручную. Или создайте в этом редакторе всю запись целиком, убедившись в том, что используете уникальный uid, а не чей либо!
Это происходит при попытке создания учетной записи для машины, которая уже подключена (например, подключен сетевой диск) к ресурсу (или IPC$) на Samba Первичном Контроллере Домена. Следующая команда разрывает все сетевые подключения: C:\WINNT\>net use * /d В дальнейшем, если машина уже 'входит в рабочую группу' c именем, аналогичным имени домена, в который вы собираетесь войти (по мнению автора, это плохая идея.), то Вы будете получать такое сообщение. Измените имя рабочей группы на какое-нибудь другое, если не получили никаких сообщений - перезагрузитесь и попробуйте снова.
Я успешно подключился к домену, но после обновления Samba при попытке входа в домен я получил сообщение "The system can not log you on (C000019B), Please try again or consult your system administrator". Это происходит, когда код безопасности SID домена, находящийся в private/WORKGROUP.SID был изменен. Например, Вы удалили файл и smbd автоматически создал новый. Или Вы перешли обратно на версию 2.0.7, TNG и HEAD (что не рекомендуется). Единственным решением проблемы явлется восстановление SID или отсоединение клиентов от домена и присоединение их заново.
Когда я пытаюсь присоединиться к домену, я получаю сообщение "The machine account for this computer either does not exist or is not accessible/Учетная запись компьютера не существует или недоступна". Что не так? Эта проблема возникает, если на Первичном Контроллере Домена нет соответствующей машинной учетной записи. Если вы использовали add user script для создания учетной записи, это указывает на ошибку в Вашем скрипте.Убедитесь, что вход с именем Администратора Домена работает. В другом случае, если Вы создавали учетные записи вручную, в них вкралась ошибка. Убедитесь в том, что для машины создана запись в файле smbpasswd PDC. Если Вы создали учетную запись с помощью редактора, а не с помощью утилиты smbpasswd, убедитесь что в имени машинной учетной записи присутствует '$' ( например, computer_name$ ). Имя (а так же uid/gid - прим. перев.) должно быть идентичным в файлах /etc/passwd и smbpasswd . Известно, что такая ошибка может возникать при разных масках подсети на клиентской части и сервере. Убедитесь что маски идентичны.
Эта проблема связана с ошибкой, связанной с PAM и проявляется в Samba 2.2.0. Эта ошибка исправлена в 2.2.1. Другим ее проявлением оказывается недоступность ресурсов на NT4/W2K серверах, входящих в домен или сообщение в Вашем smbd.log: passdb/pampass.c:pam_account(268) PAM: UNKNOWN ERROR for User: %user% Сперва убедитесь, что учетная запись Samba не отключена, выполнив команду smbpasswd -e %user%, хотя при создании учетной записи она автоматически включена. Для решения этой проблемы в 2.2.0, измените управляющий флаг account в файле /etc/pam.d/samba так, как показано ниже:
account required pam_permit.soЕсли Вы хотите сохранить обратную совместимость с Samba 2.0.x, используйте модуль pam_permit.so, также можно использовать pam_pwdb.so. Если вы попытаетесь использовать pam_unix.so, вы столкнетесь с рядом ошибок, если же необходим именно этот модуль, убедитесь что Вы используете самую последнюю версию этого файла.
Системные политики и профили
Большинство информации, необходимой для внедрения системных политик и перемещаемых профилей пользователей, аналогично информации о аналогичных функциях в домене Windows NT 4.0 . Вам следует прочитать статью Implementing Profiles and Policies in Windows NT 4.0 на сайте Microsoft.
Вот несколько дополнительных вопросов:
Для создания или редактирования ntconfig.pol Вы должны использовать NT Server Policy Editor, poledit.exe, который имеется в NT Server, но его нет в NT Workstation. Редактор политик NTws неприменим для создания Доменных Системных Политик (Domain Policies) . Кроме того, хотя Windows 95 Policy Editor может быть установлен на NT Workstation/Server, он не будет работать из-за того, что шаблоны системных политик находятся в реестре. Разумеется, программы из NT Server могут успешно запускаться на NTws. Вам нужны файлы poledit.exe, common.adm и winnt.adm. Поместите два *.adm файла в %SystemRoot%\inf , где их по умолчанию ищет poledit.exe . Помните, что этот каталог 'скрытый'. Редактор системных политик Windows NT также входит в состав Service Pack 3 (и следующих) для Windows NT 4.0. Извлеките файлы из дистрибутива Service Pack командой servicepackname /x, например для SP6 эта команда будет выглядеть как Nt4sp6ai.exe /x . Редактор политик, poledit.exe и шаблоны политик (*.adm) будут извлечены вместе с остальными файлами. Также можно скачать шаблоны политик для Office97 и скопировать где-нибудь редактор политик. Другой источник - Zero Administration Kit, доступный для скачивания с Microsoft.
Для работы с политиками групп установите group policy handler for Win9x . Его можно найти на Win98 CD в папке \tools\reskit\netadmin\poledit. Установите политику групп на клиентской машине Win9x, дважды щелкнув на файле grouppol.inf. Завершите сеанс и войдите в систему заново пару раз и посмотрите, установились ли политики групп. К сожалению, это придется сделать на каждой машине Win9x, которая работает с политиками групп... Если политики групп не работают, установите обновленную (читай: рабочую) библиотеку grouppol.dll для Windows 9x. Список групп выбирается из /etc/group.
Я не хочу покупать NT Server CD , где мне взять 'Диспетчер пользователей домена', 'Server Manager' ? Microsoft распространяет эти программы в пакете nexus для установки на Windows 95 машины. В пакет входят
Нажмите сюда, чтобы скачать пакет
nexus: ftp://ftp.microsoft.com/Softlib/MSLFILES/NEXUS.EXE
. 'Диспетчер пользователей домена' и
'Server Manager' для Windows NT4.0 можно скачать
с FTP сервера Microsoft: ftp://ftp.microsoft.com/Softlib/MSLFILES/SRVTOOLS.EXE
Множество источников информации доступно в виде mailing lists, RFC's и документации. Документация, поставляемая с дистрибутивом Samba, содержит очень хорошее описание основных понятий SMB, таких как обзор сети (browsing).
Одним из лучших средств диагностики для решения проблем является сама Samba. Вы можете использовать ключ -d при запуске smbd и nmbd для установки 'уровня отладки'('debug level') . Обратитесь к Страницам руководства (man pages) по smbd, nmbd и smb.conf для получения дополнительной информации о ключах отладки. Уровень отладки может быть от 1 (по умолчанию) до10 (100 для отслеживания паролей). Другим полезным методом отладки является компиляция Samba с ключом gcc -g . При этом в бинарные файлы будет включена отладочная информация и вы можете присоединить gdb к запущенным процессам smbd / nmbd . Чтобы присоединить gdb к процессу smbd для NT workstation, сначала дайте станции установить соединение. Нажмите ctrl-alt-delete и перейдите к полю 'Домен' (по крайней мере, вы попытаетесь впервые присоединиться к домену), при этом будет создан 'LsaEnumTrustedDomains'. После этого рабочая станция обрабатывает открытые соединения , и затем будет запущен процесс smbd (предполагается что вы не установили слишком маленький тайм-аут по простою для smbd). Таким образом, в промежутке времени между нажатием ctrl-alt-delete и вводом вашего пароля вы можете подключить gdb и продолжить. Парочка полезных при отладке команд samba :
Версию tcpdump с поддержкой SMB можно найти на http://www.tcpdup.org/. Еще один сниффер пакетов для UNIX иWin32 - Ethereal - можно скачать с http://www.ethereal.com. Для отладки в среде Microsoft Windows NT можно использовать Network Monitor (aka. netmon), который можно найти на Microsoft Developer Network CD's, Windows NT Server install CD и на дисках Microsoft System Management Server (SMS). Версия netmon, которая находится на дисках с SMS, может отслеживать пакеты между двумя компьютерами (т.е, устанавливает сетевую карту в режим promiscuous ). Версия netmon на NT Server install CD может только отслеживать траффик на конкретной NT станции и широковещательные пакеты на подсети, в которой находится NT станция. Учтите, что Ethereal может читать и записывать файлы в формате netmon.
Установка netmon на NT workstation проходит в два этапа. Ниже описана установка Netmon V4.00.349, который входит в состав Microsoft Windows NT Server 4.0, на Microsoft Windows NT Workstation 4.0. Порядок действий для других Windows NT / Netmon аналогичен. Вам понадобятся компакт-диски Microsoft Windows NT Server 4.0 Install CD и Workstation 4.0 Install CD. Сначала необходимо установить 'Network Monitor Tools and Agent' на NT Server. Для этого
Теперь файлы Netmon должны находиться в %SYSTEMROOT%\System32\netmon\*.*. Также там находятся две поддиректории - parsers\ , которая содержит необходимые DLL для обработки дампов пакетов, и captures\. Для установки Netmon tools на NT Workstation, сначала установите 'Network Monitor Agent' ('Агент сетевого монитора') c компакт-диска NT Workstation install CD.
Теперь скопируйте файлы с NT Server из %SYSTEMROOT%\System32\netmon\*.* в %SYSTEMROOT%\System32\netmon\*.* на Workstation и установите необходимые права доступа. Для запуска Сетевого монитора Вам потребуются права Администратора. Для установки Netmon на компьютер с Windows 9x box просто установите network monitor agent (Агент сетевого монитора) с Windows 9x CD (\admin\nettools\netmon). Инструкции по установке содержатся в netmon.txt. Наконец, просто скопируйте файлы рабочей инсталляции Netmon .
Существуют списки рассылки по Samba. Зайдите на http://samba.org, выберите ближайшее к Вам зеркало сайта, откройте страницу Support и затем Samba related mailing lists. По вопросам, связанным с Samba TNG обращайтесь http://www.samba-tng.org/ Это необходимо, чтобы Вы не задавали вопросы по Samba-TNG в конференциях основной ветки Samba. При написании собщения пользуйтесь следующими рекомендациями:
Для того, чтобы удалить себя из samba mailing list, зайдите на http://lists.samba.org , выберите ближайшее к вам зеркало, откройте Support и затем Samba related mailing lists. Или посмотрите здесь Пожалуйста, не присылайте сообщения с просьбой отписки, Вас все равно отправят по вышеупомянутому адресу
Примечание: содержание
нижеследующего раздела в
большинстве своем повторяет
содержание файла DOMAIN.txt , ранее
поставляемого с документацией к
дистрибутиву Samba. Большая часть
материала базируется на том, что
изложено в книге Special Edition, Using Samba. (автор
Richard Sharpe)
Домен и рабочая группа с точки
зрения обзора сети - абсолютно
одинаковые понятия. Различие
заключается в том, что у домена есть
распределенная база данных
авторизации, необходимая для
защиты входа в сеть. Кроме того,
пользователям предоставляются
различные права доступа, если они
успешно авторизованы сервером
обработки входов в домен (domain logon
server) (NT server и другие системы на базе
NT server поддерживают такой режим
работы, как это делает сейчас даже
Samba TNG ).
Вхождение SMB клиента в домен означает, что каждый сервер в домене должен принимать одинаковую информацию для авторизации. Возможности обзора сети в доменах и рабочих группах одинаковы и описаны в BROWSING.txt. Следует отметить, что обзор сети, в общем, не зависит от обработки входов в сеть.
В этом документе рассмотрены вопросы, касающиеся случая сети с однократной авторизацией(single-logon network model). Samba поддерживает обработку входов в домен, сценарии входа и пользовательские профили для клиентов MS Windows for workgroups и MS Windows 9X .
Когда SMB клиент желает войти в домен, он посылает широковещательные запросы серверам обработки входов. Тот из них, который ответит первым, включается в работу и проверяет пароль пользователя по той схеме, которую установил для него администратор Samba. Можно (но не нужно) создать домен, в котором база данных пользователей не предоставлена серверам в совместное использование, т.е. они фактически являются серверами рабочих групп, объявляющих себя членами домена. Это показывает, как типы авторизации могут отличаться от доменов, будучи, тем не менее с доменами очень связанными.
Еще одно понятие, обычно связанное с доменами с однократной авторизацией - удаленное администрирование по SMB протоколу. Опять же, нет причины, по которой это не может быть реализовано с помощью имеющейся базы данных пользователей, отличающейся от Windows NT SAM. Поддержка протокола удаленного администрирования (Remote Administration Protocol) планируется в будущих версиях Samba.
В этом разделе будет рассмотрена обработка входов с клиентских машин Window for Workgroups и Windows 9X.
Утверждается, что поддержка профилей пользователей работает в случае клиентов Win9X, NT 4.0 и NT 3.51. Можно установить: расположение профиля; сценарий входа; домашний каталог пользователя; для NT-клиентов - время принудительного отключения от домена. Разумеется, существует ряд различий между поддержкой профилей Win9X и WinNT. Они будут рассмотрены ниже.
В случае рабочих станций NT нет необходимости в NT 3.51/4.0 Server: Samba теперь может выполнять функции обработчика входов, правда, с некоторыми ограничениями (например, Диспетчер пользователей домена не может управлять доменом, контролируемым Samba).
В случае Win95 можно заручиться поддержкой со стороны NT сервера, как для размещения профилей, так и для авторизации пользователей. Подробнее об авторизации можно прочесть в security_level.txt из документации, поставляемой с дистрибутивом Samba. О размещении профилей читайте ниже.
Используя возможности Samba, Вы можете авторизовать пользователей, выполнять для них сценарии входа и загружать их личные настройки, Рабочий стол и Главное меню.
Перед тем как приступить к конфигурации Samba, стоит рассмотреть, как выполняется вход в сеть клиентом Win9X:
Для использования входов в домен и профилей пользователей Вам нужно сделать следующее:
Для примера я использовал:
[netlogon]path = /data/dos/netlogonwriteable = noguest ok = noУчтите, что этот ресурс не должен быть доступен для записи обычным пользователям по соображениям безопасности: обычные пользователи не должны изменять или создавать файлы, которые используются компьютером другого пользователя при входе в сеть.
- В секции [global] smb.conf установите следующие параметры:
domain logons = yeslogon script = %U.batВыбор *.bat-файла, разумеется, остается за Вами. В вышеприведенном примере у каждого пользователя будет свой файл <login_name_of_user>.bat. Могут быть использованы и другие %-параметры Samba. Вы можете вызывать файлы из подкаталогов, например так:
logon script = scripts\%U.bat
- Создайте файл login_name_of_user.bat , который будет испольняться при входе в сеть пользователя с именем login_name_of_user . Если файл с именем login_name_of_user.bat не существует, никакой другой сценарий входа исполнен не будет. При написании файлов *.bat помните о DOS-кодах перевода строки/возврата каретки. Если в сценарии окажутся UNIX-коды перевода строки/возврата каретки, вы столкнетесь с проблемами. Я предлагаю Вам использовать DOS-редактор для удаленного редактирования этих файлов, если Вы не знаете как заменить коды cимволов UNIX на коды символов DOS.
- Запустите smbclient с ключом -U, указав имя какого-нибудь существующего пользователя Samba, убедитесь что ресурс \\server\NETLOGON доступен, .bat-файлы не скрыты и доступны для чтения данному пользователю.
- Вы вероятно обнаружите, что ресурс \\SERVER\NETLOGON будет автоматически смонтирован при входе на клиентской машине как сетевой диск Z: . Вы можете поместить там DOS-программы, которые будут вызываться из файлов *.bat .
security mode и master browsers |
Несколько
замечаний в порядке разрешения
некоторых неувязок. Много раз
поднимался вопрос о том,
следует или не следует
устанавливать Samba как
контроллер домена в security mode,
отличном от USER.
Единственный security mode , который
не будет работать по чисто
техническим причинам - SHARE.
Режимы
DOMAIN и SERVER в
действительности лишь
варианты SMB user level security. Действительно, следует упомянуть о том, Samba или не-Samba сервер должен быть первичным обозревателем домена при работе в качестве контроллера домена. Хотя технически возможно настроить Samba-сервер так, чтобы он выполнял обе эти функции (как было сказано, обзор домена и обработка входов - две абсолютно различные функции), этого делать не следует. Вы должны помнить, что контроллер домена должен зарегестрировать DOMAIN#1b имя NetBIOS . Это имя используется клиентами Windows для нахождения контроллера домена. Клиенты Windows не делают различия между контроллером домена и обозревателем домена. По этой причине очень сложно настроить контроллер домена Samba для работы в качестве обозревателя домена. Теперь вернемся к вопросу настройки контроллера домена Samba в режиме, отличном от "security = user". Если Samba настроена как SMB сервер или сервер обработки входов, это означает фактически что другая машина в сети ("password server" - сервер паролей) знает о пользователе больше, чем Samba сервер. В 99% случаев это контроллер домена. Поэтому для работы в режиме security mode=domain, параметру "workgroup" должно быть присвоено имя домена Windows NT (у которого уже есть свой контроллер домена, не так ли?) Поэтому настроить Samba как контроллер домена для домена, в котором уже есть свой основной контроллер, весьма проблематично. В этом случае Вам следует настроить контроллер домена Samba как главный обозреватель домена. |
Предупреждение |
ВНИМАНИЕ! Работа с перемещаемыми профилями в Win9X и WinNT различается. |
Перед тем как перейти к настройке поддержки перемещаемых профилей, полезно будет рассмотреть, как с ними работают клиенты Win9X и WinNT .
Клиенты Win9X посылают запрос NetUserGetInfo на сервер, чтобы получить данные о размещении профилей пользователей. Однако, в ответе содержится лишь расположение домашнего каталога пользователя. Это означает, что профили пользователей Win9X должны располагаться в их домашних каталогах.
Клиенты WinNT посылают запрос
NetSAMLogon RPC , в котором отдельно
запрашивается расположение
профиля пользователя. Это означает,
что работа с профилями WinNT
отличается от работы с профилями Win9X.
Для работы с профилями клиентов WinNT, в секции [global] smb.conf напишите нечто подобное:
logon path = \\profileserver\profileshare\profilepath\%U\moreprofilepath
По умолчанию этот параметр установлен в \\%N\%U\profile, что равно \\sambaserver\username\profile. Ресурс \\N%\%U создается автоматически ресурсом [homes] . Если для хранения профилей используется сервер Samba, Вы должны убедиться что ресурс, указанный в logon path доступен для просмотра (browseable=yes).
Замечание: [lkcl 26aug96 - мы
столкнулись с проблемой, когда
клиенты Windows удерживают соединение
с ресурсом [homes] в промежутке
времени между завершением сеанса
одного пользователя и началом
сеанса другого. Поэтому ресурс [homes]
не должен использоваться для
хранения профилей Windows NT.]
Для работы с профилями клиентов Win9X , Вы должны использовать параметр "logon home" . В Samba были внесены исправления, так что команда "net use /home" теперь работает правильно, и это благодаря параметру "logon home" . При использовании параметра logon home , Вы должны разместить профили Win9X в домашнем каталоге пользователя. Но подождите! Можно пойти на хитрость. Если Вы напишете в секции [global] Вашего smb.conf :
logon home = \\%L\%U\.profiles
то ваши клиенты Win9X
будут послушно размещать свои
профили в скрытом подкаталоге .profiles
домашнего каталога. Кроме того,
команда 'net use /home' также будет
работать из-за следующей
особенности Win9X. Эта система
удаляет из сетевого пути все имена
каталогов, и работает только с
именем сервера и именем ресурса.
Таким образом, указание \\%L\%U\.profiles в
параметре logon home эквивалентно
указанию \\%L\%U .
Вы можете настроить поддержку перемещаемых профилей одновременно для клиентов Win9X и клиентов WinNT, установив оба параметра "logon home" и "logon path". Например:
logon home = \\%L\%U\.profiles
logon path = \\%L\profiles\%U
Примечание : Я не проверял, что
делает команда 'net use /home' в NT, если
параметр "logon home" установлен
так, как показано выше.
При первом входе пользователя Windows 9X в его профиле создаются файл USER.DAT, папки "Start Menu"("Главное Меню"), "Desktop"("Рабочий Стол"), "Programs"("Программы") and "Nethood". Эти каталоги и их содержимое будут объединены с аналогичными объектами, находящимися в c:\windows\profiles\username при последующих входах в сеть (используется тот объект, который был создан последним по времени и дате). Вам необходимо в секции [global] установить опции "preserve case = yes", "short preserve case = yes", "case sensitive = no", чтобы не потерять заглавные буквы в папках профиля. Файл USER.DAT содержит все личные настройки пользователя. Если хотите зафиксировать эти настройки, переименуйте файл USER.DAT в файл USER.MAN и сделайте его доступным только для чтения.
При работе в среде Windows 95, профили загружаются в зависимости от способа входа в сеть. Если установлен способ входа в сеть 'Client for Novell Networks'('Клиент для сетей Nowell Netware'), то профили и сценарий входа будут загружены с сервера Novell. Если выбран способ входа в сеть 'Windows Logon' ('Обычный вход в Windows'), будут загружены локальные профили, а не перемещаемые. Теперь Вы обнаружите, что окно Microsoft Networks Login (Вход в сеть Microsoft) содержит поля "Имя", "Пароль", "Домен", а не "Имя", "Пароль" как это было раньше. Введите имя домена, в котором контроллером домена является сервер Samba (или любое другое существующее имя домена, помня о том, что авторизация пользователя зависит от имени домена и от этого имени зависит, будут загружены соответствующие перемещаемые профили или нет), имя пользователя и его пароль. Как только пользователь будет авторизован, система Windows 95 возможно предупредит Вас о том, что 'Вы не пользовались этим компьютером раньше. Создать для Вас учетную запись?' ('The user has not logged on before'). Скажите 'Да' ('Yes'). Как только клиент Windows 95 загрузит Рабочий стол, Вы можете проверить содержимое каталога, указанного в "logon path" на сервере Samba и убедиться в том, что каталоги "Desktop" ("Рабочий стол"), "Start Menu" ("Главное меню"), "Programs" ("Программы") и "Nethood" были созданы. Эти папки будут кэшироваться локально на клиентской машине и обновляться при завершении сеанса работы (если, конечно Вы не сделали их доступными только для чтения :-)). Вы обнаружите, что если пользователь создает при работе папки или ярлыки, содержимое локального профиля объединяется с содержимым перемещаемого профиля.
Если вы сделали папки/файлы доступными только для чтения, Вы будете получать сообщения об ошибке при входе/выходе в сеть/из сети при попытке слияния удаленного и локального профилей. Как правило, если Вы получаете сообщения об ошибках на компьютере Win95, проверьте UNIX-права доступа к файлу в каталоге профиля на сервере Samba.
Если Вы столкнулись с проблемами при создании пользовательских профилей, Вы можете сбросить локальный пользовательский кэш рабочего стола, как это показано ниже. Когда пользователь снова войдет в систему, то получит сообщение о том, что он 'не пользовался этим компьютером ранее'.
HKEY_LOCAL_MACHINE\Windows\CurrentVersion\ProfileList Вы найдете здесь пути к профилю каждого пользователя. Запомните содержимое этого ключа (обычно это выглядит как c:\windows\profiles\username), затем удалите ключ ProfilePath для требуемого пользователя. [Выйдите из редактора реестра].
В результате будет удален локальный скрытый системный файл USER.DAT в каталоге профиля, также как и локальные папки "desktop", "nethood", "start menu" и "programs".
Если это не помогает, установите
параметр log level в значение от 3 до 10, и/или
запустите tcpdump или netmon.exe, и
посмотрите сообщения об ошибках.
Если у Вас есть доступ к NT серверу,
то настройте поддержку
перемещаемых профилей и/или
авторизацию на нем. Сделайте
дампинг пакетов и сравните его с
примером дампинга, имеющегося в
сервере NT, посмотрите, в чем отличия
от аналогичного дампинга с сервера
Samba.
При первом входе пользователя Windows NT Workstation будет создан файл профиля NTUSER.DAT. Расположение профиля теперь можно указать через параметр "logon path".
Примечание: [lkcl 10aug97 - я попытался установить путь \\samba-server\homes\profile, и потерпел неудачу, так как фоновый процесс удерживает соединение с ресурсом [homes] в промежутке времени между завершением сеанса одного пользователя и началом сеанса другого. Вам следует указать путь \\samba-server\%U\profile].
Следующий параметр, который можно использовать при работе с профилями NT: "logon drive". Его следует установить в "h:" или другое подходящее имя сетевого диска и можно использовать в сочетании с параметром "logon home". Профиль NT 4.0 - это целый каталог, а не файл. В справке по профилям NT упоминается, что этот каталог также создается с расширением .PDS. Пользователь при входе в сеть должен обладать правами на запись файлов для профиля по полному пути (и каталогу с расширением .PDS)
[lkcl10aug97 - я обнаружил, что создать таким образом каталог с расширением .PDS не удается и был вынужден создавать их вручную для каждого пользователя с помощью скрипта shell. Также я полагаю (но не проверял), что полный путь должен быть доступен для просмотра, как и в случае с Win95, в зависимости от способа, которым будет создан профиль: проверка каждого компонента пути, создание компонента пути].
В каталоге профиля система Windows NT создает больше папок, чем Windows95. Cоздается папка "Application Data" и другие, такие как "Desktop", "Nethood", "Start Menu" и "Programs". Сам профиль пользователя находится в файле NTUSER.DAT. В каталоге с расширением .PDS ничего не создается и ее назначение остается пока неизвестным.
Вы можете использовать System Control Panel (Панель управления) чтобы скопировать локальный профиль на сервер Samba (смотрите справку NT по профилям). В справке NT также упоминается, что переименование NTUSER.DAT в NTUSER.MAN делает профиль назначенным.
Примечание: [lkcl 10aug97 - я получил сообщение от NT Workstation, что система загружает профиль по медленному соединению. Действительно ли это было так, или это было связано с настройками Samba - остается неясным, что заставило NT Workstation думать, что соединение медленное].
[lkcl 20aug97 - В Samba digest один из пользователей сообщил (и другой подтвердил), что невозможно загрузить профиль с сервера Samba, несмотря на установленные параметры "security = user" и "encrypt passwords = yes" (см. ENCRYPTION.txt) или "security = server" и "password server = ip.address. of.yourNTserver". Хотя эти параметры указывают NT workstation подключаться к серверу Samba с использованием шифрованных паролей LAN manager'а].
[lkcl 25aug97 -
замечания о файлах профилей:
помните о регистре].
Ничто не мешает Вам указать любой
путь для хранения профилей
пользователей. Следовательно, Вы
можете указать, чтобы профили
хранились на сервере Samba, или на
другом SMB сервере, если он
поддерживает шифрованные пароли.
Вероятно это устаревшая или ошибочная информация |
Я думаю, что все это ерунда, но не удаляю это. (Richard Sharpe) |
Допустим, параметр logon path установлен в \\%N\U%. NT Workstation будет пытаться создать каталог "\\samba-server\username.PDS" , если Вы укажете в Диспетчере пользователей путь входа "\\samba-server\username". Следовательно, Вам необходимо указать путь "\\samba-server\username\profile". NT4.0 попытается создать каталог "\\samba-server\username\profile.PDS", которая скорее всего и будет создана.
Если Вы хотите иметь те же самые Start Menu / Desktop в Win95, Вы должны указать "logon path= \\samba-server\username\profile" [lkcl 10aug97 У этого способа есть недостаток: я создал ярлык для telnet.exe, который указывает на файл в каталоге c:\winnt\system32. Разумеется, такого каталога нет в Win95].
Если Вы все сделали правильно, то файлы user.DAT и NTUSER.DAT окажутся в одном каталоге профилей.
Note: [lkcl
25aug97 - несколько замечаний о
загрузке профилей NT. Я обнаружил,
что файл NTUSER.DAT никогда не
обновляется на рабочей станции,
после того как он был скопирован в
папку локального профиля. В этом
заключается отличие от Win95, где
загрузка/обновление профилей
происходит корректно].
Возможно, это устаревший материал |
Это приложение написано John H Terpstra из Samba Team и включено сюда для истории. |
ПРИМЕЧАНИЕ: Термин "Domain Controller" и то, что связано с ним, относится к одному специфичному методу авторизации, который может быть реализован в SMB домене. Контроллеры домена до появления версии Windows NT Server 3.1 продавались различными компаниями и базировались на частных решениях протокола LAN Manager 2.1 l. В Windows NT реализованы чисто Microsoft-овские способы совместного использования бызы данных пользователей. Посмотрите в DOMAIN.txt примеры того, как Samba может участвовать в создании или создавать SMB домены с общей базой данных пользователей по схеме, отличной от Windows NT SAM.
Windows NT Server может быть также установлен как самостоятельный файл-сервер или сервер печати (рабочая станция или сервер Рабочей Группы), или как сервер, который принимает участие в управлении доменом (член домена, первичной или резервный контроллер домена). Тоже самое относится к OS/2 Warp Server, Digital Pathworks и другим подобным продуктам, каждый из которых может принимать участие в управлении доменом вместе с Windows NT.
Многих эти определения могут сбить с толку, так что давайте разберемся, что к чему
Каждая система Windows NT (рабочая станция или сервер) имеет свой реестр. Реестр содержит записи, в которых находится информация о всех службах (аналог демонов в Unix), которые запускаются в среде Windows NT. Реестр также содержит записи о динамически загружаемых библиотеках DLL, необходимых приложениям, установленным в системе. Фактически, в реестре находится все, что может понадобиться системе
Файлы реестра можно найти на любой машине Windows NT, открыв командную строку и набрав команду: C:\WINNT\>dir %SystemRoot%\System32\config Значение системной переменной %SystemRoot% может быть получено командой:
C:\WINNT>echo %SystemRoot%
Реестр состоит из 4 разделов: default, system, software, sam и security.
При работе в домене контроллеры домена Microsoft Windows NT выполняют репликацию разделов SAM и SECURITY, так что все контроллеры домена имеют одинаковые копии соответствующих разделов друг друга
Система Microsoft Windows NT построена по принципу, что все приложения и службы должны быть авторизованы перед тем как они получат разрешение у security manager на свою работу.
База данных пользователей Windows NT также находится в реестре. Эта часть реестра содержит идентификатор пользователя, информацию о расположении домашних каталогов, членстве в группах, настройках рабочего стола и т.д.
Каждая система Windows NT (рабочая станция или сервер) имеет свой собственный реестр. Серверы Windows NT могут участвовать в управлении безопасностью в домене, имея общую базу данных - у них нет собственной полной информации в реестре, как у Workstations и выделенных серверов.
База данных пользователей называется SAM (Security Access Manager) database и используется как для авторизации пользователей, так и для авторизации внутренних процессов.
Samba team разработала утилиту, которая может преобразовать Windows NT SAM в формат smbpasswd : обратитесь к ENCRYPTION.txt для получения информации по smbpasswd и /pub/samba/pwdump на ближайшем к вам зеркале FTP-сервера Samba . Эта утилита полезна, но ее использование для репликации SAM в формат Samba затруднено
Windows for Workgroups, Windows 95, и Windows NT Workstations/Servers могут входить в домен, который управляется серверами Windows NT, настроенных соответствующим способом. Каждый домен обязательно имеет ОДИН основной контроллер домена. Желательно, чтобы каждый домен имел хотя бы один резервный контроллер домена.
Основной и резервные
контроллеры домена участвуют в
репликации SAM, так что каждый
участник контроля домена имеет
свежую копию SAM в своем реестре.