smbd это сервер, которые может предоставлять сервисы SMB. Сервисами являются файловый сервер и сервер печати. Они предоставляются клиентам, которые используюьт SMB протокол. Этот протокол совместим с протоколом LanManager и с успехом может применятся клиентами LanManager. Сюда включаются MSCLIENT 3.0 для DOS, Windows for Workgroups, Windows 95, Windows NT, OS/2, DAVE для Macintosh, и smbfs для Linux.
Расширенное описание сервисов, которые может предоставлять сервер дано на страницах руководства, посвященных конфигурационному файлу Samba (смотрите smb.conf(5)). Текущая страница руководства не описывает сервисы, а делает акцент на административных аспектах запуска сервера.
Пожалуйста заметьте, что здесь отсутствует описание вопросов безопастности при запуске сервера, и что станица руководства smb.conf(5) обязательно должна быть внимательно прочитана перед тем как вы приступите к установке.
Когда клиент посылает серверу запрос создается сессия. Каждый клиент работает во время сессии с копией сервера. Эта копия затем обслуживает все соединения, которые установит клиент во время данной сессии. Когда все совединения данного клиента закрываются, копия сервера уничтожается.
Конфигурационный файл и любые файлы, которые он включает, автоматически перезагружаются каждую минуту, если они были изменены. Вы можете заставить smbd перезагрузить эти файлы, послав серверу сигнал SIGHUP. Перезагрузка конфигурационного файла не будет оказывать влияния на сервисы и соединения, которые в этот момент находятся в работе. Пользователь должен отсоединится от сервиса, но можно также убить smbd и запустить его снова.
По умолчанию сервер НЕ запускается в режиме демона.
-a
-d уровень_отладки
Уровень_отладки должен быть целым числом от 0 до 10.
Если данная опция не задана, то по умолчанию уровень_отладки выставляется в 0. Чем больше заданное значение, тем больше подробностей о работе сервера будет заносится в файлы протоколирования. При уровне 0 будут заносится только критические ошибки и важные предупреждения. Уровень 1 является самым удобным для повседневной работы - он генерирует дополнительную информацию об операциях обрывов соединений.
Уровни выше 1 будут генерировать соотвественно больше информации и должны использоваться только при возникновении проблем. Уровни выше 3 разрабатываются только для использования разработчиками и генерируют ОГРОМНОЕ количество информации, большая часть которой крайне специфична.
-l файл_протоколирования
По умолчанию имя этого файла определяется во время компиляции.
Базовое имя используется для генерации реальных имен файлов протоколирования. Например, если задано базовое имя "log", то будут созданы следующие файлы:
log.in (содержит входящие транзакции)
log.out (содержит выходящии транзакции)
Сгенерированные файлы протоколирования никогда не удаляются сервером.
-O опции_socket'ов
Смотрите секцию ОПЦИИ SOCKET'ов в файле smb.conf(5).
значение номер_порта должно быть положительны целым числом.
По умолчанию оно установлено в 139.
Данный порт будет использоваться при установке соединения клиента с сервером. Стандартный (принятый) номер порта для сервера это 139. Если вы захотите запустить север от имени обычного пользователя (не root), то многие системы потребуют от вас использовать номер порта больше чем 1024 - попросите своего системного администратора помочь, в этой ситуации.
Обычно для сервера, который используется многиими клиентами, вы должны настроить порт, отличный от 139 и затребовать службу перенаправления информации на порт 139, подробности этого читайте в файле rfc1002.txt в секции 4.3.5.
Данный параметр обычно не нуждается в изменении, за исключением описанной выше ситуации.
-s конфигурационный_файл
В этом файле задаются параметры необходимые серверу. Об этих параметрах, включая специфическую информацию такую как о файле printcap и другую можно прочитать на странице руководства smb.conf(5).
/etc/inetd.conf
/etc/rc
Если вы хотите запускать сервер как демон во время загрузки системы, то данный файл должен содержать соответствующую информацию для запуска. Смотрите секцию "УСТАНОВКА" ниже.
/etc/services
/usr/local/samba/lib/smb.conf
На некоторых системах smbd не может изменить обратно идентификатор пользователя на root после вызова setuid(). Такие системы называются "trapdoor" системами. Если у вас такая система, то вы не сможете осуществить соединение от клиента (такого как PC), так как нужно два разлиных пользователя. Попытка соединения второго пользователя будет приводит к сообщению "access denied" (в доступе отказано)
PRINTER
Рекомендуется серверную программу установить в каталог /usr/local/samba, или в любой другой, доступный на чтение всем, а на запись только суперпользователю. Выполнение программы должно быть доступно всем, так как пользователи могут захотеть запустить сервер сами (в этом случае сервер будет, разумеется, выполняется с их уровнем привелегий). На программу-сервер НЕ должен быть установлен бит суперпользователя (setuid root). На некоторых системах может портребоваться установить для smbd идентификатор пустой группы. Это вызвано тем, что некоторые системы могут иметь брешь в безопастности, когда к демон-процессам может присоединится пользователь с отладчиком. Установка для smbd пустой группы может закрыть эту брешь для дальнейшего использования. Данная брешь в безопастности и этот совет имели место быть в Linux, во время написания этого совета. Возможно такое и бывает только в Linux так как тестирование на других системах подобной дыры в безопастности не выявило.
Серверные файлы протоколирования должны быть помещены в каталог, доступный на запись и чтение только суперпользователю root, так как они могут содержать конфиденциальную информацию.
Конфигурационный файл должен быть помещен в каталог доступный на чтение и запись только суперпользователю, так как конфигурационный файл управляет безопастностью сервисов, предоставляемых сервером. Конфигурационный файл может быть сделан читаемым для всех, если вы так желаете, но это не очень хорошее решение и мы его не рекомендуем. Простой конфигурационный файл "smb.conf.sample" поставляется вместе с исходными текстами сервера - он может быть переименован в "smb.conf" и модифицирован под ваши требования.
Остаются следующие замечания:
smb.conf (конфигурационный файл) установлена в /usr/local/samba/lib
файлы протоколирования записаны в /var/adm/smblogs
Сервер может быть запущен как демон пользователем или при загрузке системы, или может быть запущен через inetd. Если сервер запустить демоном, то он всегда будет готов для быстрого открытия сессии. Если сервер запустить через initd, то это даст возможность сэкономить память, а для повышения безопастности могут быть использованы такие утилиты как TCP-wrapper.
Когда вы решите как вам лучше запускать сервер, переходите к либо к секции "ЗАПУСК СЕРВЕРА КАК ДЕМОНА" или "ЗАПУСК СЕРВЕРА ПО ЗАПРОСУ".
Любой прользователь может запустить сервер как демон (если он имеет права на запуск, конечно). Это полезно для тестовых целей и может даже быть полезно для временной установки. Когда вы запускаете сервер таким образом, вы, однако, запускаете его с привелегиями того пользователя от имени которого вы произвели запуск.
Чтобы гаратированно запустить сервер как демон, во время загрузки машины и убедится, что он запущен с привелегиями суперпользователя, а также что он может обслуживать множество клиентов, вам необходимо модифицировать системные файлы запуска. Вам нужно вставить (например в /etc/rc) строку, описывающую номер порта, файл протоколирования, конфигурационный файл и уровень отладки, например:
(Данная выше команда должна быть помещена в сценарий инициализации в одной строке. В завсимости от характеристик вашего терминала, вы можете неправильно увидеть эту строку на экране)
Если опции испольщуемые во время компиляции соответсвуют вашей системе, то все параметры за исключением необязательных: уровня отдаки и опции -D могут быть опущены. Смотрите секцию "ОПЦИИ" выше.
Возможно, что вместе с smbd вы также захотите установить сервер nmbd - смотрите nmbd(8).
Сперва, убедитесь, что нужный порт описан в файле /etc/services. Рекомендуется испльзовать порт 139, если это возможно, однако можно использовать и любой другой.
Убедитесь, что в файле /etc/services есть следующая строка:
Замечание для пользователей NIS/YP - вам может быть понадобится перестройка файла NIS service maps вместо правки файла /etc/services.
Далее, поместите необходимую строку в файл /etc/inetd.conf (если вы используете демон отличный от inetd, то должны настроить его сами). Заметим, что первая часть строки совпадает с именем сервиса в файле /etc/services. Подставте соответствующие значения для вашей системы в эту строку (смотрите inetd(8)):
(Данная выше команда должна быть помещена в файл /etc/inetd.conf в одной строке. В завсимости от характеристик вашего терминала, вы можете неправильно увидеть эту строку на экране)
Заметим, что нет необходимости задавать номер порта здесь, даже если вы используете нестандартный порт.
И наконец, отредактируйте конфигурационный файл для предоставления клиентам необходимых сервисов. Для запуска сервера вам необходимы хотя бы два сервиса:
[printers]
Это позволит вам соединятся с вашим домашним каталогом и печатать на любой принтер, который поддерживается данной машиной (с привелегиями пользователя).
Если имя вашей машины, например, "fred" а ваше имя "mary", вы должны теперь иметь возможность присоединится к ресурсу "\\fred\mary".
Для предполагаемого теста и эксперимента с сервером, мы рекомендуем вам использовать программу smbclient (смотрите smbclient(1)).
Большинство диагностических сообщений, которые выдает сервер записываются в файл протоколирования. Имя этого файла задается во время компиляции, но может быть перекрыто в командной строке.
Количество диагностических сообщений зависит от уровня отладки, который установлен для данного сервера. Если у вас возникли проблемы, установите уровень отладки в 3 и изучите файлы протоколирования.
Большинство сообщений интуитивно понятны. Однако, на время создания данной страницы руководства, исходный код еще сыроват, чтобы можно было гаратировать описание каждого диагностического сообщения. На этой стадии вам лучше изучить исходные тексты и проверить при выполнении каких условий выдается то или иное диагностическое сообщение.
Note that as the signal handlers send a debug write, they are not re-entrant in smbd. This you should wait until smbd is in a state of waiting for an incoming smb before issuing them. It is possible to make the signal handlers safe by un-blocking the signals before the select call and re-blocking them after, however this would affect performance.
Смотрите smb.conf(5) на предмет полного списка участников проекта и подробностей о том, как отсылать сообщения об ошибках, комментарии и т.д.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |