ИМЯ
smbd — предоставляет клиентам сервисы SMB (иначе LanManager)
 
СИНТАКСИС
smbd [-D] [-F] [-S] [-i] [-h] [-V] [-b] [-d <уровень отладки>] [-l <файл протоколирования>] [-p <номер порта>] [-P <profiling level>] [-O <опции socket’ов>] [-s <конфигурационный файл>]
 
ОПИСАНИЕ
smbd это сервер, который может предоставлять сервисы SMB. Сервисами являются файловый сервер и сервер печати. Они предоставляются клиентам, которые используют SMB протокол. Этот протокол совместим с протоколом LanManager (NetBIOS) и с успехом может применятся клиентами LanManager. Сюда включаются MS Windows, OS/2, DAVE для Macintosh, и smbfs для Linux.
 
Когда клиент посылает серверу запрос создается сессия. Каждый клиент работает во время сессии с копией сервера. Эта копия затем обслуживает все соединения, которые установит клиент во время данной сессии. Когда все соединения данного клиента закрываются, копия сервера уничтожается.
 
ОПЦИИ
 
-D, —daemon Become a daemon (default)
Если эта опция задана, то она заставляет сервер запустится в режиме демона. Это приводит к тому, что сервер будет работать в фоновом режиме, обрабатывая запросы, поступающие на соответствующий порт. Запуск сервера smbd в качестве демона рекомендовано при нечастом использовании файлов и принт-сервисов.
 
Сервер smbd по-умолчанию работает в режиме демона.
 
-F, —foreground Run daemon in foreground (for daemontools, etc.)
 
-S, —log-stdout Log to stdout
 
-i, —interactive Run interactive (not a daemon)
 
-h, —help, -?
 
-V, —version
 
-b, —build-options
Покажет информацию о том, как была скомпилирована Samba
 
-d, —debuglevel=DEBUGLEVEL Set debug level
 
Уровень_отладки это целое число от 0 до 10.Если данная опция не задана, то по умолчанию уровень отладки выставляется в 0.
 
Чем больше заданное значение, тем больше подробностей о работе сервера будет заносится в файлы протоколирования. При уровне 0 будут заносится только критические ошибки и важные предупреждения. Уровень 1 является самым разумным для повседневной работы — он генерирует не большой объем информации об операциях обрывов соединений.
 
Уровни выше 1 будут генерировать соответственно больше информации и должны использоваться только при возникновении проблем. Уровни выше 3 разрабатываются только для использования разработчиками и генерируют ОГРОМНОЕ количество информации, большая часть которой крайне специфична.
 
Заметим, что этот параметр связан с log level smb.conf.
 
-l, —log-basename=LOGFILEBASE Base name for log files
Если эта опция задана, то файл_протоколирования задает базовое имя файла, в который будет помещаться информация о работе сервера (log/debug).
 
По умолчанию имя этого файла определяется во время компиляции.
 
Базовое имя используется для генерации реальных имен файлов протоколирования и к нему добавляется расширение ".progname". Например, если задано базовое имя "log", то будут созданы следующие файлы:
 
log.debug (содержащий отладочную информацию)
log.in (содержит входящие транзакции)
log.out (содержит выходящии транзакции)
log.smbclient, log.smbd
Сгенерированные файлы протоколирования не могут быть удалены клиентом.
 
-p, —port=STRING Listen on the specified ports
Содержит список TCP-портов, разделенных пробелом или запятой, которые использует сервер smbd.
Значения по умолчанию задаются параметром smb.conf smb ports.
 
По умолчанию используется 139 порт (SMB -> NetBIOS -> TCP)
и 445 порт (SMB -> TCP)
 
Если вы захотите запустить север от имени обычного пользователя (не root), то многие системы потребуют от вас использовать номер порта больше чем 1024 — попросите своего системного администратора помочь, в этой ситуации.
 
Обычно для сервера, который используется многими клиентами, вы должны настроить порт, отличный от 139 и затребовать службу перенаправления информации на порт 139, подробности этого читайте в файле rfc1002.txt в секции 4.3.5.
 
Данный параметр обычно не нуждается в изменении, за исключением описанной выше ситуации.
 
-P, —profiling-level=PROFILE_LEVEL Set profiling level
Задает уровень (в виде числа) профилирования собираемых данных:
0 выкл. профилирование
1 вкл. только счетчик профилирования
2 запускает профилирование
3 сбрасывает все спрофилированные данные
 
-O опции_socket’ов
Смотрите секцию ОПЦИИ SOCKET’ов в файле smb.conf(5).
 
-s конфигурационный_файл
По умолчанию имя конфигурационного файла определяется во время компиляции.
 
В этом файле задаются параметры необходимые серверу. Об этих параметрах, включая специфическую информацию такую как о файле printcap и другую можно прочитать на странице руководства smb.conf.
 
ФАЙЛЫ
 
/etc/inetd.confInternet superserver configuration database
в этом файле содержится информация для meta-демона inetd, если сервер smbd запускается в режиме демона
 
/etc/rc
или любой другой инициализационный скрипт системы
 
Если сервер smbd запущен в качестве демона, то в этом файле (скрипте) должны содержаться надлежащие последовательности для запуска сервера smbd
 
/etc/services
если smbd-сервер запущен посредством meta-демона inetd, то в этом файле содержится:
[Имя службы] [Порт] [Протокол]
netbios-ssn 139/tcp
 
/etc/samba/smb.conf
default конфигурационный файл smbd-севера
 
Этот файл описывает все службы сервера, которые можно сделать доступными для клиентов
 
ОГРАНИЧЕНИЯ
На некоторых системах smbd не может изменить обратно идентификатор пользователя на root после вызова setuid(). Такие системы называются "trapdoor" системами. Если у вас такая система, то вы не сможете осуществить соединение от клиента (такого как PC), так как нужно два разлиных пользователя. Попытка соединения второго пользователя будет приводит к сообщению "access denied" (в доступе отказано)
 
ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
PRINTER
если для сервиса печати не задано имя принтера, то многие системы будут использовать значение этой переменной (или имя "lp" если переменная не определена) как имя принтера
 
УСТАНОВКА
Местоположение сервера и его файлов поддержки определяется индивидуально каждым системным администратором. По этому далее мы только советуем.
 
Рекомендуется серверную программу установить в каталог /usr/local/samba, или в любой другой, доступный на чтение всем, а на запись только суперпользователю. Выполнение программы должно быть доступно всем, так как пользователи могут захотеть запустить сервер сами (в этом случае сервер будет, разумеется, выполняется с их уровнем привилегий). На программу-сервер НЕ должен быть установлен бит суперпользователя (setuid root). На некоторых системах может потребоваться установить для smbd идентификатор пустой группы. Это вызвано тем, что некоторые системы могут иметь брешь в безопасности, когда к демон-процессам может присоединится пользователь с отладчиком. Установка для smbd пустой группы может закрыть эту брешь для дальнейшего использования. Данная брешь в безопасности и этот совет имели место быть в Linux, во время написания этого совета. Возможно такое и бывает только в Linux так как тестирование на других системах подобной дыры в безопасности не выявило.
 
Серверные файлы протоколирования должны быть помещены в каталог, доступный на запись и чтение только суперпользователю root, так как они могут содержать конфиденциальную информацию.
 
Конфигурационный файл должен быть помещен в каталог доступный на чтение и запись только суперпользователю, так как конфигурационный файл управляет безопасностью сервисов, предоставляемых сервером. Конфигурационный файл может быть сделан читаемым для всех, если вы так желаете, но это не очень хорошее решение и мы его не рекомендуем. Простой конфигурационный файл "smb.conf.sample" поставляется вместе с исходными текстами сервера — он может быть переименован в "smb.conf" и модифицирован под ваши требования.
 
Сервер может быть запущен как демон пользователем или при загрузке системы, или может быть запущен через inetd. Если сервер запустить демоном, то он всегда будет готов для быстрого открытия сессии. Если сервер запустить через initd, то это даст возможность сэкономить память, а для повышения безопасности могут быть использованы такие утилиты как TCP-wrapper.
 
Когда вы решите как вам лучше запускать сервер, переходите к либо к секции "ЗАПУСК СЕРВЕРА КАК ДЕМОНА" или "ЗАПУСК СЕРВЕРА ПО ЗАПРОСУ".
 
ЗАПУСК СЕРВЕРА КАК ДЕМОНА
Для запуска сервера как демона из командной строки, просто добавьте опцию -D.
 
Любой пользователь может запустить сервер как демон (если он имеет права на запуск, конечно). Это полезно для тестовых целей и может даже быть полезно для временной установки. Когда вы запускаете сервер таким образом, вы, однако, запускаете его с привилегиями того пользователя от имени которого вы произвели запуск.
 
Чтобы гарантированно запустить сервер как демон, во время загрузки машины и убедится, что он запущен с привилегиями суперпользователя, а также что он может обслуживать множество клиентов, вам необходимо модифицировать системные файлы запуска. Вам нужно вставить (например в /etc/rc) строку, описывающую номер порта, файл протоколирования, конфигурационный файл и уровень отладки, например:
/…/smbd -D -l
/…/log -s
/…/smb.conf
 
(Данная выше команда должна быть помещена в сценарий инициализации в одной строке. В зависимости от характеристик вашего терминала, вы можете неправильно увидеть эту строку на экране)
 
Если опции используемые во время компиляции соответствуют вашей системе, то все параметры за исключением необязательных: уровня отладки и опции -D могут быть опущены. Смотрите секцию "ОПЦИИ" выше.
 
ЗАПУСК СЕРВЕРА ПО ЗАПРОСУ
Если ваша система использует демон inetd, вы можете запускать smbd с его помощью, когда клиентский процесс пытается установит соединение с smbd сервером. Для этого требует произвести некоторые изменения в файлах конфигурации inetd. Если вы не являетесь администратором, то попросите помочь вашего системного администратора модифицировать эти файлы.
 
Возможно, что вместе с smbd вы также захотите установить сервер nmbd — смотрите nmbd(8).
 
Сперва, убедитесь, что нужный порт описан в файле /etc/services. Рекомендуется использовать порт 139, если это возможно, однако можно использовать и любой другой.
 
Убедитесь, что в файле /etc/services есть следующая строка:
 
netbios-ssn 139/tcp
 
Замечание для пользователей NIS/YP — вам может быть понадобится перестройка файла NIS service maps вместо правки файла /etc/services.
 
Далее, поместите необходимую строку в файл /etc/inetd.conf (если вы используете демон отличный от inetd, то должны настроить его сами). Заметим, что первая часть строки совпадает с именем сервиса в файле /etc/services. Подставте соответствующие значения для вашей системы в эту строку (смотрите inetd(8)):
 
netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd -d1 -l/var/adm/smblogs/log -s/usr/local/samba/lib/smb.conf
 
(Данная выше команда должна быть помещена в файл /etc/inetd.conf в одной строке. В завсимости от характеристик вашего терминала, вы можете неправильно увидеть эту строку на экране)
 
Заметим, что нет необходимости задавать номер порта здесь, даже если вы используете нестандартный порт.
 
И наконец, отредактируйте конфигурационный файл для предоставления клиентам необходимых сервисов. Для запуска сервера вам необходимы хотя бы два сервиса:
 
[homes]
writable = yes
 
[printers]
writable = no
printable = yes
path = /tmp
public = yes
 
Это позволит вам соединятся с вашим домашним каталогом и печатать на любой принтер, который поддерживается данной машиной (с привилегиями пользователя).
 
ПРОВЕРА ПРАВИЛЬНОСТИ УСТАНОВКИ
Если сервер запускается как демон, запустите его перед проверкой. Если он запускается через inetd, то перезапустите систему или убейте и запустите снова inetd. Некоторые версии inetd могут перечитывать свой конфигурационный файл, если inetd послать сигнал HUP.
 
Если имя вашей машины, например, "fred" а ваше имя "mary", вы должны теперь иметь возможность присоединится к ресурсу "\\fred\mary".
 
Для предполагаемого теста и эксперимента с сервером, мы рекомендуем вам использовать программу smbclient