Управление Доменом для Windows 9x/ME

Замечание: Следующая секция содержит многое из содержимого файла DOMAIN.txt, ранее поставлявшегося с Samba. Большая часть материала основана на содержимом книги Special Edition, Using Samba. (Richard Sharpe)

В терминах обзора сети домен и рабочая группа - одно и то же. Различие в том, что с доменом связана распределенная база данных идентификации, для безопасного доступа к сети. Также, если пользователи успешно прошли регистрационный сервер домена (его поддерживают NT server и другие системы, основанные на NT server, так же сейчас делает, по крайней мере, Samba TNG), им могут быть делегированы различные права доступа.

SMB клиент, входя в домен, ожидает, что все прочие сервера домена должны признавать ту же самую идентификационную информацию. Функции обзора сети для домена и рабочих групп идентичны и объясняются в BROWSING.txt. Нужно заметить, что обзор полностью ортогонален к поддержке вхождения в систему.

В этом документе обсуждаются решения, относящиеся к модели сети с одним вхождением. Samba поддерживает вхождение в домен, сценарии вхождения в сеть, и профили пользователей для клиентов MS Windows for workgroups и MS Windows 9X.

Когда SMB клиент хочет войти в домен, он посылает широковещательные запросы на регистрационный сервер. Тот отвечает и проверяет его пароль, используя какой бы то ни было механизм, установленный администратором Samba. Можно (но очень глупо) создать домен, где база данных пользователей не разделяется между серверами, например, они фактически сервера рабочей группы объявляющие себя участниками домена. Это показывает, что идентификация достаточно отличается, но тесно связана с доменами.

Еще одна вещь, часто связываемая с одним вхождением в сеть - удаленное администрирование по SMB протоколу. Опять, нет причины, по какой это не может быть реализовано с нижележащей базой данных пользователей, что отличается от Windows NT SAM. Поддержка протокола удаленного администрирования планируется в будущих выпусках Samba.

Вхождение в сеть, как обсуждается в этой секции, имеет в виду клиентов Window for Workgroups и Windows 9X.

Поддержка профилей заявлена как работающая для Win95, NT 4.0 и NT 3.51. Можно указать: расположение профиля; файл сценария для загрузки при входе; домашний каталог пользователя; и для NT время умирания теперь также может проще поддерживаться. Однако, есть несколько отличий между поддержкой профилей в Win9X и поддержкой профилей в WinNT. Они обсуждаются ниже.

При работе с NT Workstation, не требуется использования или вмешательства NT 4.0 или NT 3.51 сервера: Samba теперь может заменить предоставляемые NT сервером службы вхождения в домен, в ограниченной и экспериментальной степени (например, запуск "User Manager for Domains" не предоставит вам доступ к домену созданному Samba сервером).

При работе с Win95, можно заручиться помощью NT сервера, как для размещения профилей, так и для идентификации пользователей. Детальнее об идентификации пользователей, смотрите security_level.txt. Детальнее о размещении профилей смотрите ниже.

Используя эти свойства, вы можете сделать проверку вхождения клиентов в сеть с помощью Samba сервера; при вхождении клиентов запускать пакетный файл и загружать их предпочтения, рабочий стол и стартовое меню.

Перед погружением в инструкции по настройке, стоит потратить время и взглянуть на то, как Win9X клиент выполняет регистрацию:

  1. Клиент посылает широковещательный NetLogon запрос (на широковещательный IP адрес подсети). Он посылается на NetBIOS адрес DOMAIN<00> на NetBIOS уровне. Клиент выбирает первый полученный ответ, который содержит NetBIOS имя регистрационного сервера для использования в формате \\SERVER.

  2. Затем клиент подключается к этому серверу, заходит на него (выполняет SMBsessetupX) и после подключается к ресурсу IPC$ (используя SMBtconX).

  3. Затем клиент делает NetWkstaUserLogon запрос, который возвращает имя пользовательского сценария входа.

  4. Затем клиент подключается к ресурсу NetLogon и ищет его, и если он его находит и может прочесть, он возвращается клиенту и выполняется. После чего, клиент отключается от ресурса NetLogon.

  5. Затем клиент посылает серверу NetUserGetInfo запрос, для получения ресурса домашнего каталога, который используется для поиска профилей. Так как ответ на NetUserGetInfo запрос больше не содержит ресурса с домашним каталогом, профили для клиентов Win9X ДОЛЖНЫ находиться в домашнем каталоге пользователя.

  6. Затем клиент подключается к ресурсу с домашним каталогом пользователя и ищет профиль пользователя. Вы можете указать ресурс с домашним каталогом как имя ресурса и путь. Например, \\server\fred\.profile. Если профили найдены, они выполняются.

  7. Затем клиент отсоединяется от ресурса с домашним каталогом и заново подключается к ресурсу NetLogon и ищет файл политик CONFIG.POL. Если он найден, он считывается и выполняется.

Инструкции по настройке: вход в сеть

Для использования вхождения в домен и профилей вам следует сделать следующее:

  1. В вашем smb.conf создать ресурс называемый [netlogon]. Этот ресурс должен быть доступен для чтения всем пользователям, и, возможно, не должен быть доступен для записи. Это ресурс будет содержать ваши стартовые сценарии, и файл CONFIG.POL. (Заметка: более детально о файле CONFIG.POL, о его использовании, и чем он является, смотрите в документации Microsoft Windows NT Administration. Формат этих файлов неизвестен, так что вам придется использовать утилиты от Microsoft)

    Например, я использую:

    [netlogon]
         path = /data/dos/netlogon
         writeable = no
         guest ok = no

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

  2. в секции [global] файла smb.conf установите следующее:

    domain logons = yes
    logon script = %U.bat
    	

    Выбор пакетного файла, конечно, за вами. Вышеприведенное дает каждому пользователю отдельный пакетный файл, так как %U автоматически будет заменяться именем пользователя. Можно использовать другой стандартный % макрос. Вы можете использовать пакетные файлы из каталога с помощью чего-то вроде:

    logon script = scripts\%U.bat
    	

  3. Для запуска при входе создайте пакетные файлы. Если пакетный файл не существует, то не будет запущен никакой пакетный файл.

    В пакетных файлах вам следует быть осторожными, используя окончания строк в DOS стиле - cr/lf. Если вы будете следовать этому правилу - DOS может быть сбит с толку. Если вы не знаете, как создавать файлы в DOS стиле под unix, то, я полагаю, вы используете DOS редактор для удаленного редактирования файлов.

  4. Чтобы проверить, что ресурс \\server\\NETLOGON доступен, используйте smbclient с ключом -U, пакетные фалы видны и доступны для чтения пользователям.

  5. Вероятно, вы обнаружили, что ваши клиенты автоматически при входе монтируют ресурс \\SERVER\NETLOGON как диск z: . Вы можете это использовать для запуска некоторых полезных программ из пакетных файлов.

Режим безопасности и главный обозреватель

Чтобы связать концы с концами нужно сделать несколько комментариев. Было много споров о том, требуется или нет настраивать контроллер домена на Samba с режимом безопасности иным, нежели USER. Единственный режим безопасности, который не работает по техническим причинам - режим безопасности SHARE. Режимы безопасности DOMAIN и SERVER обычно просто варианты режима безопасности SMB user.

Фактически, этот вопрос тесно связан с дискуссией, может ли Samba, когда работает как контроллер домена, не быть главным обозревателем сети для своих рабочих групп. Хотя таким образом настроить сервер технически возможно (в конце концов, обзор и вход в домен - две различные функции), делать так - плохая идея. Вы должны помнить, что контроллер домена должен зарегистрировать NetBIOS имя DOMAIN#1b. Это имя используется клиентами Windows для определения местонахождения контроллера домена. Клиенты Windows не делают различий между контроллером домена и главным обозревателем домена. По этой причине, будет очень разумно настроить контроллер домена Samba как главный обозреватель домена.

Теперь вернемся к вопросу настройки контроллера домена на Samba для использования иного режима, чем "security = user". Если компьютер с Samba для проверки законности пользовательских запросов настроен на использование другого SMB сервера или контроллера домена, тогда фактически некоторая другая машина в сети ("сервер паролей") знает больше о пользователе, чем Samba хост. 99% времени, этот другой компьютер и есть контроллер домена. Теперь в случае работы в domain режиме безопасности, параметр "workgroup" должен содержать имя Windows NT домена (который уже имеет контроллер домена, не так ли?)

Следовательно, настраивать Samba в режиме контроллера домена, который определенно уже имеет первичный контроллер домена - нарываться на неприятности. Следовательно, вы всегда должны настраивать контроллер домена Samba как главного обозревателя своего домена.

Инструкции по настройке: Установка перемещаемых профилей пользователей

Внимание

ЗАМЕТЬТЕ! Поддержка перемещаемых профилей пользователей различается для Win9X и WinNT.

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

Клиенты Win9X для определения расположения профиля пользователя посылают серверу NetUserGetInfo запрос. Однако, ответ не содержит места для отдельного поля с расположением профиля, только с именем домашнего ресурса пользователя. Это обозначает, что размещение профилей Win9X ограничено их домашним каталогом.

Клиенты WinNT посылают RPC запрос NetSAMLogon, который содержит много полей, включая отдельное поле для расположения профилей пользователей. Это означает, что поддержка профилей для Win9X и WinNT различается.

Настройка Windows NT

Для поддержки WinNT клиентов, в [global] секции файла smb.conf установите следующее (напрмер):

logon path = \\profileserver\profileshare\profilepath\%U\moreprofilepath

Значение по умолчанию для этой опции \\%N\%U\profile, то есть \\sambaserver\username\profile. Служба \\N%\%U создается автоматически службой [homes]. Если вы используете samba сервер для профилей, вы _должны_ создать ресурс, указанный в logon path.

Замечание: [lkcl 26aug96 - мы обнаружили проблему, с тем, что Windows клиенты могут сохранять соединение с ресурсом [homes] между сессиями. Таким образом, ресурс [homes] НЕ должен использоваться в пути к профилю.]

Настройка Windows 9X

Для поддержки 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 для "logon home".

Настройка Win9X и WinNT

Установив оба "logon home" и "logon path" параметра, вы можете поддерживать профили клиентов как Win9X, так и WinNT. Например:

logon home = \\%L\%U\.profiles
logon path = \\%L\profiles\%U

Замечание: Я не проверял, что делает 'net use /home' на NT когда "logon home" установлен как указано выше.

Установка профилей Windows 9X

Когда пользователь первый раз входит в Windows 9X, создается файл user.DAT, а также папки "Start Menu", "Desktop", "Programs" и "Nethood". При последующем вхождении, эти каталоги и их содержимое будет синхронизироваться с локальными версиями, расположенными в c:\windows\profiles\username, путем выбора самой последней версии. Для сохранения прописных букв в названиях ярлыков и в любой из папок профилей вам следует использовать в [global] опции "preserve case = yes", "short case preserve = yes" и "case sensitive = no".

Файл user.DAT содержит все пользовательские предпочтения. Если вы хотите использовать назначенный набор предпочтений, переименуйте их файл user.DAT в user.MAN, и запретите к этому файлу доступ на запись.

  1. На машине Windows 95, сходите в Панель Управления | Пользователи и выберите закладку Профили Пользователей. Выберите требуемый уровень перемещения предпочтений. Нажмите OK, но _не_ позволяйте компьютеру перезагружаться.

  2. На машине Windows 95, сходите в Панель Управления | Сеть | Клиент для сетей Microsoft | Свойства. Выберите 'Входить в домен NT'. Затем, проверьте, что Способ входа в сеть установлен на 'Клиент для сетей Microsoft'. Нажмите OK, и в этот раз позвольте компьютеру перезагрузиться.

Под Windows 95, профили загружаются в зависимости от значения указанного в Способе входа в сеть. Если у вас Способ входа в сеть: 'Клиент для сетей Novell', то профили и сценарий входа будут загружены с вашего Novell сервера. Если у вас Способ входа в сеть: 'Обычный вход в Windows', то профили будут загружаться с локальной машины - что немного противоречит концепции перемещаемых профилей.

Теперь вы заметите, что окно Microsoft Networks Login содержит [user, password, domain] вместо появлявшегося ранее [user, password]. Введите имя домена samba сервера (либо любого другого существующего домена, но запомните, что пользователь будет идентифицироваться в этом домене и, если сервер поддерживает загрузку профилей, из него же загружать профили), имя пользователя и пароль.

Как только пользователь был успешно идентифицирован, машина Windows 95 проинформирует что 'The user has not logged on before' и спросит, не хотите ли вы сохранить пользовательские предпочтения? Выберите "да".

Как только появится рабочий стол клиента Windows 95, вы сможете проверить содержимое каталога указанного в "logon path" на samba сервере и проверить, что были созданы папки "Desktop", "Start Menu", "Programs" и "Nethood".

Эти папки будут кэшированы на клиенте, и обновляться когда пользователь будет выходить из системы (если вы не ограничили доступ к ним на только-чтение :-). Вы обнаружите, что если после этого пользователь создает папки или ярлыки, то клиент будет сверять содержимое каталога профиля с локальным содержимым на клиенте, выбирая более новые версии папок и ярлыков из каждого набора.

Если вы на samba сервере сделали папки/файлы с доступом только-чтение, при входе и выходе на Win95 машине вы получите сообщение об ошибке, по мере того, как она будет пытаться синхронизировать локальный и удаленный профиль. И вообще, если w95 машина сообщает вам об ошибках, нужно проверить на samba сервере unix права доступа к файлам в каталоге профиля.

Если у вас проблемы с созданием профилей пользователей, вы можете сбросить кэш локального компьютера, как показано ниже. Когда этот пользователь войдет следующий раз, ему будет сказано, что он входит "первый раз".

  1. Вместо ввода в диалоговом окне значений [user, password, domain], нажмите escape.

  2. Запустите программу regedit.exe, и загляните в:

    HKEY_LOCAL_MACHINE\Windows\CurrentVersion\ProfileList

    вы найдете элемент для каждого пользователя в ProfilePath. Отметьте содержимое ключа (должно быть что-то вроде c:\windows\profiles\username), затем для требуемого пользователя удалите ключ ProfilePath.

    [Выйдите из редактора реестра].

  3. ВНИМАНИЕ - перед удалением содержимого каьалога указанного в ProfilePath (что-то наподобие c:\windows\profiles\username), спросите пользователя, нет ли у него каких-либо важных файлов на рабочем столе или в меню Пуск. Удалите содержимое каталога ProfilePath (если требуется сохранить какие-либо файлы, сделайте их резервную копию).

    Эффект будет такой, как от удаления в каталоге профиля локального (скрытого системного файла доступного только для чтения) user.DAT, а также локальных папок "desktop", "nethood", "start menu" и "programs".

  4. В каталоге c:\windows найдите и удалите .PWL файл с кэшем паролей пользователя.

  5. Выйдите из windows 95 клиента.

  6. Проверьте содержимое пути к профилю (смотрите описанный выше "logon path"), и удалите пользовательский файл user.DAT или user.MAN, сделав, при необходимости, его резервную копию.

Если все остальное оканчивается неудачно, увеличьте уровень отладки samba на значение от 3 до 10, и/или запустите программу трассировки пакетов, такую как tcpdump или netmon.exe, и ищите любые сообщения об ошибках.

Если у вас есть доступ к NT серверу, то сначаа установите перемещаемые профили и/или вхождение в сеть на NT сервере. Выполните трассировку пакетов, или проверьте пример трассировки пакетов предоставляемый NT сервером, и посмотрите различия с соответствующей трассой полученной при использовании samba.

Windows NT Workstation 4.0

Когда пользователь первый раз входит в Windows NT Workstation, создается профиль NTuser.DAT. Расположение профиля может быть указано через параметр "logon path".

Замечание: [lkcl 10aug97 - я пробовал установить путь на \\samba-server\homes\profile, и обнаружил, что это не срабатывает, так как фоновый процесс сохраняет соединения с ресурсом [homes], который _не_ закрывается между сеансами пользователей. Вам следует иметь путь \\samba-server\%L\profile, где user - имя пользователя созданное из ресурса [homes] ].

Есть параметр, который теперь доступен для использования с профилями NT: "logon drive". Он должен быть установлен на "h:" или любое другое устройство, и должен использоваться в сочетании новым параметром "logon home".

Элемент профиля NT 4.0 - _каталог_, а не файл. В справочной системе по NT профилям упоминается, что каталог создается с расширением .PDS . Пользователь, во время вхождения, должен иметь права на запись для создания полного пути профиля (и папки с расширением .PDS ) [lkcl 10aug97 - я обнаружил, что создание каталога .PDS не происходит, и создаю его вручную для каждого пользователя с помощью shell сценария. Также, я предполагаю, но не проверял, что полный путь профиля должен просматриваться так же, как и для w95, из-за способа, которым они пытаются создать полный путь профиля: проверка существования пути каждого компонента; создание пути компонента].

В каталоге профиля NT создает больше папок, чем 95. Она создает "Application Data" и другие, вместе с "Desktop", "Nethood", "Start Menu" и "Programs". Сам профиль помещается в файл NTuser.DAT. В .PDS каталог ничего не помещается, и его назначение на данный момент неизвестно.

Вы можете использовать системную Панель Управления для копирования профиля на samba сервер (смотрите справочную систему NT по профилям: также вы можете указать правильное расположение в System Control Panel). Справочная система NT также упоминает, что переименование NTuser.DAT в NTuser.MAN делает профиль назначенным (mandatory).

Замечание: [lkcl 10aug97 - я заметил, что NT Workstation говорит мне, что она загружает профиль с медленного ресурса. Так ли это на самом еле или это как-либо связано с настройками, пока неизвестно, что заставляет NT Workstation _думать_, что ресурс медленный требуется еще найти].

[lkcl 20aug97 - после samba digest correspondence, один пользователь обнаружил, и другие это подтвердили, что профили не могут быть загружены с samba сервера до тех пор, пока не установлены "security = user" и "encrypt passwords = yes" (смотрите файл ENCRYPTION.txt) или пока не используется "security = server" и "password server = ip.address.of.yourNTserver". Любая из этих опций позволяет рабочей станции NT получить доступ к samba серверу, используя шифрованные пароли LAN manager, без них обычно требуется вмешательство пользователя, чтобы рабочая станция NT допускала пароли прямым текстом].

[lkcl 25aug97 - поступили еще комментарии о профилях NT: факты о _сущности_ профиля. Файл _обязан_ называться NTuser.DAT или, для назначенных профилей, NTuser.MAN].

Windows NT Server

Ничто не препятствует вам указать для расположения профилей пользователей любой путь, какой вам понравится. Следовательно, вы можете указать, что профиль размещен на samba сервере, или любом другом SMB сервере, если только SMB сервер поддерживает шифрованные пароли.

Совместное использование профилей W95 и NT Workstation 4.0

Далее следует потенциально устаревший или неправильный материал

Я думаю, что все это фикция, но не удалял эту часть. (Richard Sharpe)

По умолчанию путь входа - \\%N\U%. Если вы, с помощью NT User Manager укажете путь входа "\\samba-server\username", то NT Workstation будет пытаться создать каталог "\\samba-server\username.PDS" ". После чего, вам следует указать (например) "\\samba-server\username\profile". NT 4.0 будет пытаться создать "\\samba-server\username\profile.PDS", что, вероятно, возымеет успех.

Если после этого вы захотите разделять с Win95 одни и те же Start Menu / Desktop, вам следует указать "logon path = \\samba-server\username\profile" [lkcl 10aug97 это имеет и отрицательные стороны: я создаю ссылку на telnet.exe, который пытается запуститься с каталога c:\winnt\system32. Очевидно, что этот каталог скорее всего не существует на хосте на котором установлена только Win95].

Если вы все установили правильно, вы найдете отдельный файлы user.DAT и NTuser.DAT в одном и том же каталоге профиля.

Замечание: [lkcl 25aug97 - есть несколько требующих решения вопросов с загрузкой профилей NT, возможно связанных с отметками времени/даты. Я обнаружил, что NTuser.DAT на рабочей станции никогда не обновляется после его первоначального копирования в локальный каталог рабочей станции. Это отличается от w95, где перенос/обновление профилей _выполняется_ правильно].