IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Технология Java | Linux  >

Официальное руководство и HOWTO по Samba 3.2.x: Часть I. Общая информация по установке

Подготовка Samba к настройке

developerWorks
Страница 1 из 5 На предыдущую страницу

Опции документа

Обсудить


Выскажите мнение об этом учебном пособии

Помогите нам улучшить содержание


Уровень сложности: средний

Джон Х. Терпстра, разработчик, Samba Team

20.03.2008

Этот раздел Samba-HOWTO-Collection содержит общую информацию по установке и конфигурированию тех частей Samba, которые - наиболее вероятно - потребуются. ПОЖАЛУЙСТА, прочтите этот раздел.

Как установить и протестировать SAMBA

Получение и установка Samba

Бинарные пакеты Samba включены практически в любой дистрибутив Linux или UNIX. Также некоторые пакеты доступны на домашней странице Samba. Обратитесь к руководству по своей операционной системе за дополнительной информацией по установке пакетов для вашей операционной системы.

Если вам необходимо скомпилировать Samba из исходных кодов, прочтите раздел Как компилировать Samba .



В начало


Настройка Samba (smb.conf)

Настройки Samba хранятся в файле smb.conf, который обычно располагается здесь: /etc/samba/smb.conf или здесь: /usr/local/samba/lib/smb.conf. Вы можете либо отредактировать этот файл в текстовом редакторе, либо с помощью одного из многих существующих GUI-инструментов, таких, как веб-интерфейс SWAT, который поставляется с Samba.

Синтаксис файла настроек

Файл smb.conf использует тот же синтаксис, что и различные .ini-файлы в Windows 3.1: каждый файл состоит из нескольких секций, начинающихся именем секции в квадратных скобках ([]) с новой строки. Каждый раздел состит из одной или более пар ключ/значение, ключ отделяется от значения знаком равенства (=). Это обычный текстовый файл, поэтому вы можете открыть его и редактировать своим любимым текстовым редактором.

Каждая секция в файле smb.conf представляет собой либо общий ресурс, либо мета-сервис сервера Samba. Секция [global] - особенная, так как она содержит настройки, которые применяются к серверу Samba в целом. Samba поддерживает несколько мета-сервисов, каждый из которых служит своей цели. Например, общий ресурс [homes] - мета-сервис, который позволяет Samba предоставить каждому пользователю персональный домашний ресурс. Общий ресурс [printers] - это мета-сервис, обеспечивающий поддержку очереди печати, и указывающий на промежуточный каталог спулера, в который задания печати от Windows-клиентов помещаются перед постановкой в очередь на печать в UNIX/Linux

Мета-сервис printers работает так, что каждый принтер, который указан в файле printcap, через команду lpstat, либо через CUPS API, будет объявлен общей (разделяемой) очередью печати. Раздел printers в файле smb.conf может быть настроен как недоступный для просмотра, в противном случае принтеры будут видимы как общий ресурс. Таким образом, при недоступности для просмотра, настройки в этом разделе не имеют значения, учитывая, что данный мета-сервис отвечает только за доступность каждого принтера системы UNIX в виде очереди печати Windows. Если определен параметр comment, то его значение будет отображаться как часть имени принтера при просмотре в Windows Explorer.

Каждая секция файла smb.conf, которая описывает общий ресурс или мета-сервис, называется строфой. Строфа global описывает натсройки, которые действуют на все другие строфы в файле smb.conf. Параметры настройки smb.conf описаны в соответствующих страницах руководства man. Некоторые из параметров могут использоваться только в строфе global, другие -- только в строфах общих ресурсов или мета-сервисов, а некоторые могут использоваться глобально или в строфах мета-сервисов или общих ресурсов.

Ниже представлен минимальный работоспособный файл smb.conf .

Минимальный рабочий smb.conf [global] workgroup=WORKGROUP netbios name=MYNAME [share1] path=/tmp [share2] path=/my_share_folder comment=Какие-то случайные файлы

Информация о файлах баз данных TDB

Этот раздел содержит краткое описание базы данных, используемой Samba-3.

Каталог, в котором Samba хранит tdb-файлы, определяется директивами при компиляции. Samba-3 хранит tdb-файлы в двух местах. Лучший способ определить эти места - выполнить следующую команду:

				root# smbd -b | grep PRIVATE_DIR
				PRIVATE_DIR: /etc/samba/private
			

Такой результат означает, что конфиденциальные файлы tdb хранятся в каталоге /etc/samba/private. Samba-3 также использует несколько tdb-файлов, которые содержат более обыденные данные. Расположение этих файлов можно выяснить так:
				root# smbd -b | grep LOCKDIR
				LOCKDIR: /var/lib/samba
			

Следовательно, эти управляющие файлы, как показано в примере, хранятся в каталоге /var/lib/samba.

Регулярно используемые tdb-файлы описаны в Таблице описаний регулярно используемых файлов TDB . Все эти файлы необходимо периодически резервировать, для этого нужно использовать утилиту tdbbackup. Все регулярно используемые tdb-файлы должны сохраняться во время миграций, обновлений и апгрейдов машины.

Временные tdb-файлы не надо резервировать или сохранять во время миграций, обновлений и апгрейдов машины. Временные tdb-файлы описаны в Описаниях временных файлов TDB .

Описание регулярно используемых файлов TDB
ИмяОПИСАНИЕ
account_policy

Установки политики учетной записи Samba/NT, включая настройки срока действия пароля.

group_mappingТаблица соответствия групп/SID Windows группам UNIX.
ntdriversХранит информацию об установленных драйверах для каждого принтера.
ntformsХранит информацию о формах для каждого принтера.
ntprintersХранит информацию о настройках печати для каждого принтера.
passdbСуществует только при использовании tdbsam. Этот файл хранит информацию SambaSAMAccount. Необходимо помнить, что для этого файла требуется, чтобы информация о пользовательских учетных записях POSIX была доступна из файла /etc/passwd, либо из другого системного источника.
registryБаза данных Samba, предназначенная только для чтения, и хранящая скелет реестра Windows, который обеспечивает поддержку для экспорта различных таблиц баз данных через winreg RPC (вызовы удаленных процедур).
secretsЭтот файл хранит SID рабочей группы/домена/компьютера, пароль обновления каталога LDAP и другие важные данные об окружении, которые необходимы для корректной работы Samba. Этот файл содержит очень важную информацию, которая должна быть защищена. Она хранится в каталоге PRIVATE_DIR.
share_infoХранит информацию ACL для каждого ресурса.
winbindd_idmapЛокальная база данных IDMAP Winbindd.
Описание временных файлов TDB.
ИмяОПИСАНИЕПроизводится ли резервное копирование
brlock

Информация о блокировках диапазонов байтов.

нет
connections

Временный кэш информации о текущем соединении, используемый для отслеживания максимального числа соединений.

нет
eventlog/*tdb

Записи журнала событий. В большинстве случаев это просто кэш системных журналов.

нет
gencache

Кэширующая база данных общего назначения для неотвечающих WINS-серверов и междоменных доверительных отношений.

нет
login_cache

Временый кэш информации о входе в систему, в частности, число неудачных попыток ввода пароля.

нет
messages

Временное хранилище сообщений, обрабатываемых smbd.

нет
netsamlogon_cache

Кэширует структуру данных пользователя net_info_3 после запроса net_samlogon (как член домена).

нет
perfmon/*.tdb

Информация счетчиков производительности.

нет
printing/*.tdb

Кэшированный вывод команды lpq, создаваемый для каждого ресурса печати.

нет
schannel_store

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

нет
sessionid

Временный кэш для различной информации о сессиях и обслуживания utmp.

нет
unexpected

Хранит пакеты, полученные в отсутствии ожидающих их активных процессов.

нет
winbindd_cache

Кэш информации о подлинности, полученной от домена NT4 или ADS. Включает в себя списки пользователей и т.д.

да

Запускаем Samba

Samba, в сущности, состоит из двух или трех демонов. Демон - это приложение UNIX, которое работает в фоновом режиме и предоставляет сервисы. Пример сервиса - веб-сервер Apache, демон которого называется httpd. В случае Samba существует три демона, из которых необходимы как минимум два.

Сервер Samba состоит из следующих демонов:

  • Этот демон обрабатывает все запросы регистрации и разрешения имен. Это - основная "рабочая лошадка", используемая в просмотре сети. Он обслуживает все протоколы на основе UDP. Демон nmbd должен быть первой командой, запущенной при старте Samba.
  • Этот демон обслуживает все виды соединений, основанные на TCP/IP, для файловых операций и операций печати. Он также управляет локальной аутентификацией. Демон smbd должен быть запущен сразу же после запуска nmbd.
  • Этот демон должен быть запущен, если Samba - член домена Windows NT4 или ADS. Он также необходим, когда Samba имеет доверительные отношения с другим доменом. Демон winbindd проверит файл smb.conf на наличие параметров idmap uid и idmap gid. Если они будут найдены, то winbindd будет использовать указанные значения для распределения UID и GID, в противном случае winbindd запустится, но не сможет распределять UID и GID.
  • Когда Samba встраивается поставщиком операционной системы, процесс запуска, как правило, сильно зависит от интеграции Samba и платформы. Пожалуйста, обратитесь к документации по администрированию операционной системы, чтобы получить специальную информацию, касающуюся корректного управления запуском Samba.

Пример конфигурации

В каталоге examples архива с исходным кодом есть примеры конфигурационных файлов. Предполагается, что вы тщательно их изучите, чтобы увидеть, как различные опции совместно используются в реальности. Описание всех опций можно увидеть на страницах руководства man. Скорее всего, лучше начать с файла настроек smb.conf.default и адаптировать его для своих нужд. В этом файле содержится множество комментариев.

Простейший файл настроек, который можно использовать, должен содержать что-то похожее на Еще один простой файл smb.conf .

Еще один простой файл smb.conf [global] workgroup=MIDEARTH [homes] guest ok=no read only=no

Такие настройки позволят подключаться всем, кто имеет учетную запись на сервере, используя либо свое имя входа, или homes как имя ресурса. (Замечание: необходимо указать рабочую группу, в которой должна работать Samba. По умолчанию имя рабочей группы - WORKGROUP.)

Проверьте, что вы поместили файл smb.conf в необходимый каталог. Необходимо учесть, что правильное расположение этого файла зависит от того, с какими опциями компилировались бинарные файлы. Вы можете выяснить правильное расположение, выполнив в каталоге, содержащем smbd, команду:

				root# smbd -b | grep smb.conf
			

Для получения более полной информации о настройках безопасности общего ресурса [homes] необходимо обратиться к разделу Безопасность Samba .

Проверяем файл настроек командой testparm

Важно проверить содержимое файла smb.conf, используя программу testparm. Если testparm отработает правильно, то будет выдан список ресурсов, в противном случае - сообщение об ошибке. Перед началом работы удостоверьтесь в том, что команда testparm работает корректно и что сервисы выглядят разумно. Введите команду:

					root# testparm /etc/samba/smb.conf
				

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

Обязательно запускайте testparm после любых изменений файла smb.conf!

Файл smb.conf постоянно проверяется демонами Samba smbd (и каждым порождаемым экземпляром этого демона), nmbd и winbindd. Хорошим тоном является содержание конфигурационного файла настолько малым по размеру, насколько это возможно. Многие администраторы предпочитают документировать настройки Samba, таким образом требование сохранять файл небольшим идет вразрез с мудростью хорошего документирования. Одно из возможных решений - это делать все описания и настройки в файле с другим именем, например, smb.conf.master. Утилита testparm может быть использована для генерации полностью оптимизированного файла smb.conf из главного файла с настройками и документацией:

					root# testparm -s smb.conf.master > smb.conf
				

Такой метод администрирования делает возможным содержание детальных записей об изменении настроек, сохраняя при этом размер файла smb.conf минимально необходимым.

SWAT

SWAT - это Web-интерфейс, который можно использовать для настройки Samba. SWAT может находиться в отдельном пакете, а не в пакете Samba, поставляемом для используемой вами платформы. Если необходимо компилировать SWAT из исходных кодов, то прочтите страницы руководства man, рассматривающие вопросы компиляции, установки и настройки SWAT.

Чтобы запустить SWAT, запустите свой любимый Web-браузер,и перейдите по адресу http://localhost:901/. Замените localhost именем компьютера, на котором запущена Samba, если необходимо произвести настройку с другого компьютера.

К SWAT можно обратиться из браузера на любом компьютере, имеющем IP-соединение, но будьте осторожны, поскольку соединение с удаленной машиной уязвимо к перехвату пароля - пароли пересылаются в открытом виде.

Больше информации о SWAT можно найти тут: Инструмент веб-администрирования Samba .



В начало


Просмотр общих ресурсов, доступных на сервере

Чтобы просмотреть список общих ресурсов, доступных на настроенном сервере Samba, выполните следующую команду:

			$smbclient -L имя_вашего_хоста
		

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

Если вы выбираете режим безопасности уровня пользователя, вы можете обнаружить, что Samba запрашивает пароль до того, как выведет список общих ресурсов. Смотрите страницы руководства man по smbclient для получения дополнительных сведений. Вы можете указать, что требуется вывод списка общих ресурсов, доступных без пароля, добавив опцию -N в командной строке.



В начало


Подключение UNIX-клиента

Выполните следующую команду:

			$smbclient  //имя_вашего_хоста/ресурс
		

Обычно имя_вашего_хоста - это имя хоста, на который установлен smbd, а ресурс - любой общий ресурс, который был определен в файле smb.conf. Используйте собственное имя пользователя, если у вас в smb.conf есть только секция [homes].

Пример: Если UNIX-хост называется bambi, и корректное имя пользователя fred, то вам следует набрать:

			$smbclient //bambi/fred
		



В начало


Подключение удаленного SMB-клиента

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

Монтирование дисков из DOS, Windows или OS/2 может быть сделано с помощью выполнения команды

			C:\>net use m: \\имя_сервера\имя_общего_ресурса\
		

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

Попробуйте печать, например, так:

			C:\>net use lpt1:	\\имя_сервера\сервис_печати
		

Сервис_печати является именем принтера (на самом деле очереди печати) на указанном сервере. Это позволит все задания печати, которые направляются на порт lpt1: на Windows-клиенте, отсылать на принтер, который владеет очередью печати с указанным именем.

C:\>print filename
		

Что делать, если что-то не работает?

Вы можете прочитать раздел Контрольный список Samba . Если и после этого у вас что-то не будет получаться, обратитесь к разделу Анализ и решение проблем с Samba . Samba-сервер был успешно установлен в тысячах компьютерных сетей по всему миру. Вряд ли ваша проблема уникальна, поэтому стоит выполнить поиск в Интернете - может, кто-то уже встречался с подобной проблемой и нашел способ ее преодолеть.

Если вы новичок в Samba и, в частности, в Windows-сетях или Linux/Unix, с помощью книги Samba-3 by Example вы сможете использовать проверенные сетевые настройки. Просто выберите из первых пяти глав дизайн сети, который более всего соответствует вашим требованиям, а затем следуйте простой пошаговой процедуре развертывания. Позже, когда вы будете иметь работающую сеть, вы сможете снова вернуться к этой книге для изучения возможностей дальнейшего улучшения.

Все еще ничего не получается?

Лучший совет для человека, у которого ничего не получается - остыть! Это может быть чересчур вызывающе, но пока вы сердиты или раздражены, ваши способности по поиску решения невелики. Холодный разум очищает путь к ответу. Просто помните, что у каждой проблемы есть решение —, следовательно, есть большой шанс, что кто-то уже нашел этот ответ, несмотря на то, что у вас прямо сейчас это не получается. Все изменится со временем, терпением и обучением.

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



В начало


Общие ошибки

Следующие вопросы и проблемы постоянно описываются в списке рассылки Samba.

Большое число процессов smbd

Samba состоит из трех программ: nmbd, smbd и winbindd. nmbd - это демон сообщений сервера имен, smbd - демон сервера сообщений, а winbindd - демон, который занимается обработкой связей с котроллером домена.

Если Samba не выполняет роль WINS-сервера, то будет запущен только один экземпляр nmbd. Если он выполняет роль WINS-сервера, то будет два экземпляра nmbd, один из которых обрабатывает WINS-запросы.

smbd обслуживает все запросы на подключение. Он порождает новый процесс для каждого соединения, созданного клиентом. Именно поэтому вы можете увидеть их так много - по одному на каждое клиентское соединение.

winbindd запустится как один или два демона, в зависимости от того, запущен ли он в расщепленном режиме (в этом случае будет два экземпляра) или нет.

Сообщение об ошибке: open_oplock_ipc

В лог-файлах при запуске smbd появляется сообщение: open_oplock_ipc: Failed to get local UDP socket for address 100007f. Error was Cannot assign requested.

Ваше устройство петли (loopback device) работает неправильно. Удостоверьтесь, что оно настроено правильно. Устройство петли - это внутреннее (виртуальное) сетевое устройство с IP-адресом 127.0.0.1. Прочтите документацию по вашей ОС, чтобы узнать, как правильно настроить устройство петли на вашей системе.

Сетевое имя не может быть найдено

Ошибка может быть следствием одной из следующих причин:

  • Вы указали несуществующий путь к общему ресурсу в smb.conf.

  • Пользователь, под именем которого вы пытаетесь подключиться, не имеет достаточных разрешений на доступ к общему ресурсу: необходимы разрешения как на чтение (r), так и на доступ (x).

  • Общий ресурс, к которому вы пытаетесь получить доступ, не существует.



В начало



Страница 1 из 5 На предыдущую страницу
    IBM в России Конфиденциальность Контакты