Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Beyond Linux From Scratch. Version 2011-12-30
Назад 14. Основные сетевые программы Вперед

Пакет Samba-3.6.1

В пакете Samba находятся программы, предоставляющие клиентам SMB/CIFS сервис работы с файлами и принтерами, а также позволяющие подключаться клиентам Linux к сетям Windows. Пакет Samba можно также сконфигурировать в качестве замены контроллера Windows NT 4.0 Domain Controller (с оговорками насчет работы с соединениями PDC и BDC системы NT). Причем в этом случае файл/принт сервер будет выступать в качестве члена домена Windows NT 4.0 или Active Directory и сервера имен NetBIOS (rfc1001/1002) и, кроме всего прочего, будет предоставлять возможности навигации в локальной сети.

Известно, что пакет правильно собирается и работает на платформе LFS-7.0.

Информация о пакете

  • Загрузка (HTTP): http://samba.org/samba/ftp/stable/samba-3.6.1.tar.gz
  • Загрузка (FTP): ftp://samba.org/pub/samba/samba-3.6.1.tar.gz
  • Контрольная сумма MD5: 5291717be0734e07dc07b6110e162e87
  • Размер загружаемого пакета: 27,7 MB
  • Оценочный размер требуемого дискового пространства: 455 MB
  • Оценочное время сборки: 5,1 SBU (дополнительно около 2,8 SBU для запуска тестового набора )

Зависимости пакета Samba

Необязательные

Popt-1.16, Linux-PAM-1.1.5, CUPS-1.5.0, OpenLDAP-2.4.23, Gamin-0.1.10, acl-2.2.51, XFS-2.9.7, Heimdal-1.4 или MIT Kerberos V5-1.6, Python-2.7.2 (используется только в части тестового набора ), tdb (версия 1.2.1), libcap2-2.22, libunwind, avahi-0.6.25, OpenAFS и Valgrind (необязательное использование в тестовом наборе).

Если вы планируете использовать вашу систему для подключения к домену Windows NT, вам нужно будет установить один из пакетов kerberos.

Необязательные для поддержки Samba4

GnuTLS-3.0.7 (рекомендуется), Python-2.7.2 и SQLite-3.7.8

Установка пакета Samba

Замечание

Если после того, как будут собраны двоичные модули, вы хотите запустить набор тестов, вы должны добавить к скрипту configure, приведенному ниже, параметр --enable-socket-wrapper. Сначала, вы, вероятно, сначала захотите запустить скрипт configure с параметром --help. Возможно, имеются настройки, которые позволят вам с помощью подключения необязательных зависимостей получить дополнительные функциональные возможности.

Установите пакет Samba с помощью следующих команд:

cd source3 &&

./configure                            \
    --prefix=/usr                      \
    --sysconfdir=/etc                  \
    --localstatedir=/var               \
    --with-piddir=/run                 \
    --with-pammodulesdir=/lib/security \
    --with-fhs                         \
    --enable-nss-wrapper               \
    --enable-socket-wrapper            &&
make

Чтобы проверить результаты, выполните команду make test. Если у вас установлен пакет Linux-PAM и собраны библиотечные модули PAM, вы можете с помощью команды make test_pam_modules выполнить тест dlopen.

Теперь в роли пользователя root выполните:

make install &&

install -v -m755 ../nsswitch/libnss_win{s,bind}.so /lib   &&
ln -v -sf libnss_winbind.so /lib/libnss_winbind.so.2      &&
ln -v -sf libnss_wins.so    /lib/libnss_wins.so.2         &&

install -v -m644 ../examples/smb.conf.default /etc/samba  &&

if [ -d /etc/openldap/schema ]; then
    install -v -m644    ../examples/LDAP/README              \
                        /etc/openldap/schema/README.LDAP     &&
    install -v -m644    ../examples/LDAP/samba*              \
                        /etc/openldap/schema                 &&
    install -v -m755    ../examples/LDAP/{convert*,get*,ol*} \
                        /etc/openldap/schema                 && 
fi &&

install -v -m755 -d /usr/share/doc/samba-3.6.1 &&
install -v -m644    ../docs/*.pdf \
                    /usr/share/doc/samba-3.6.1 &&
ln -v -s ../../samba/swat  /usr/share/doc/samba-3.6.1

Пояснение команд

--enable-merged-build: Используйте этот параметр, чтобы собрать (альфа) компоненты Samba4 (рекомендуется GnuTLS).

--sysconfdir=/etc: Указывает директорий, предназначенный для установки конфигурационных файлов; необходим, чтобы не устанавливать их в директорий /usr/etc, используемый по умолчанию.

--localstatedir=/var: Указывает директорий, предназначенный для установки данных; необходим, чтобы не устанавливать их в директорий /usr/var, используемый по умолчанию.

--with-fhs: Все остальные пути указываются в стиле, совместимом со стандартом Filesystem Hierarchy Standard (FHS).

--enable-nss-wrapper: Собирает библиотеку nss-wrapper.

--enable-socket-wrapper: Этот параметр необходим для запуска тестового набора.

install -v -m755 nsswitch/libnss_win{s,bind}.so /lib: По умолчанию библиотеки nss не устанавливаются. Если вы собираетесь использовать winbindd для аутентификации в домене Windows NT и/или для разрешения имен собираетесь использовать WINS, вам эти библиотеки нужны.

ln -v -sf libnss_winbind.so /lib/libnss_winbind.so.2 и ln -v -sf libnss_wins.so /lib/libnss_wins.so.2: Эти символические ссылки необходимы Glibc для использования библиотек NSS

if [ -d /etc/openldap/schema ]; then ...; fi: Эти команды используются, чтобы узнать, установлен ли у вас пакет OpenLDAP, и если он установлен, то эти команды копируют схемы примеров Samba в директорий schema пакета OpenLDAP.

install -v -m644 ../examples/smb.conf.default /etc/samba: Эти команды копируют файл smb.conf, предлагаемый по умолчанию, в директорий /etc/samba. Этот пример конфигурирования не будет работать до тех пор, пока вы не скопируйте его в /etc/samba/smb.conf и не сделаете в вашем установленном пакете соответствующие изменения. Смотрите в разделе, описывающим конфигурирование, тот минимальный объем настроек, которые следует выполнить.

Конфигурирование пакета Samba

Конфигурационные файлы

/etc/samba/smb.conf

Печать с помощью клиентских программ SMB

Если вы используете CUPS в качестве сервиса печати и вы хотите печатать на принтере, подключенному к клиенту SMB, вам нужно создать фоновое устройство SMB. Чтобы создать устройство, выполните в роли пользователя root следующую команду:

ln -v -sf /usr/bin/smbspool /usr/lib/cups/backend/smb

Подробнее о конфигурировании

Из-за сложности и из-за большого разнообразия вариантов использования Samba полное конфигурирование всех возможностей пакета выходит за рамки книги BLFS. В этом разделе приводятся инструкции по настройке файла /etc/samba/smb.conf для двух наиболее распространенных сценариев. Полная настройка файла /etc/samba/smb.conf будет зависеть от целей установки пакета Samba.

Замечание

Вы можете решить, что проще скопировать конфигурационные параметры, приведенные ниже, в пустой файл /etc/samba/smb.conf, а не копировать и редактировать файл, предлагаемый по умолчанию, так как об этом описано в разделе "Пояснение команд". Как вы будете создавать/ редактировать файл /etc/samba/smb.conf, решайте сами. Только сделайте так, чтобы в файл было разрешено делать записи только пользователю root (режим 644).

Сценарий 1: Минимальная установка только автономно работающего клиента

Выберите этот вариант, если вы хотите с помощью программы smbclient только пересылать файлы, монтировать общедоступные ресурсы Windows и не хотите предоставлять машинам, использующих систему Windows, общий доступ к вашим файлам и принтерам.

В файле /etc/samba/smb.conf достаточно задать следующие три параметра:

[global]
    workgroup = MYGROUP
    dos charset = cp850
    unix charset = ISO-8859-1

Значения, приведенные в этом примере, указывают, что компьютер входит в рабочую группу Windows с названием "MYGROUP", что при подключении к системам MS-DOS и MS Windows 9x использует набор символов "cp850" и что имена файлов хранятся на диске в кодировке "ISO-8859-1". Измените эти значения в соответствие с вашими требованиями. Значение "unix charset" должно быть таким же, как в выходных данных команды locale charmap, причем при выполнении этой команды в переменной LANG должна быть задана ваша локаль; в противном случае команда ls будет неправильно отображать имена загружаемых файлов.

Поскольку при этом сценарии запускать какие-либо сервера Samba не нужно, вам не нужно устанавливать загрузочные скрипты.

Сценарий 2: Автономно работающий файл/принт сервер

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

В этом случае файл /etc/samba/smb.conf.default может оказаться хорошим шаблоном, с которого можно начинать настройку. Кроме того, в раздел "[global]" добавьте параметры "dos charset" и "unix charset" так, как описано в сценарии 1, с тем, чтобы предотвратить проблемы с именами файлов.

В следующем конфигурационном файле в домашнем директории каждого пользователя создается отдельный общедоступный ресурс и для машин с системой Windows открывается доступ ко всем принтерам:

[global]
    workgroup = MYGROUP
    dos charset = cp850
    unix charset = ISO-8859-1

[homes]
    comment = Home Directories
    browseable = no
    writable = yes

[printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = no
    guest ok = no
    printable = yes

В разделе "[global]" вы также можете настроить другие параметры, в том числе следующие:

    server string =
    security =
    hosts allow =
    load printers =
    log file =
    max log size =
    socket options =
    local master =

Информацию, касающуюся этих параметров, смотрите в комментариях в файле /etc/samba/smb.conf.default.

Поскольку в этом случае необходимы демоны smbd и nmbd, установите загрузочный скрипт samba. Не забудьте запустить smbpasswd (с параметром -a для того, чтобы можно было добавлять пользователей), чтобы можно было задавать пароли для всех учетных записей, которые необходимы для доступа с помощью Samba, либо для тех же самых целей используйте веб интерфейс (смотрите ниже). Когда с Samba используется passdb, для любого пользователя, которого вы попытаетесь добавить, потребуется также сделать запись в файле /etc/passwd.

Расширенные возможности

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

  • Using Samba, 2nd Edition - популярная книга, опубликованная издательством O'Reilly: file:///usr/share/samba/swat/using_samba/toc.html
  • Официальные HOWTO и справочное руководство по Samba: file:///usr/share/samba/swat/help/Samba-HOWTO-Collection/index.html
  • Samba-3 в примерах: file:///usr/share/samba/swat/help/Samba-Guide/index.html
  • Страницы man по Samba-3: file:///usr/share/samba/swat/help/samba.7.html

Загрузочный скрипт

Для вашего удобства предлагаются загрузочные скрипты для Samba. В пакете blfs-bootscripts-20100825 есть два скрипта. Первый, samba, будет запускать демоны smbd и nmbd, необходимые для предоставления сервисов SMB/CIFS. Второй скрипт, winbind, запускает демон winbindd, используемый для предоставления сервиса домена Windows для Linux-клиентов.

Если установка пакета Samba выполняется с настройками, задаваемыми по умолчанию, для гостевого доступа к серверу используется пользователь nobody. Эту настройку можно изменить, указав в файле /etc/samba/smb.conf параметр guest account =. Если вы используете параметр guest account =, убедитесь, что этот пользователь существует в файле /etc/passwd. Если используется пользователь, задаваемый по умолчанию, выполните в роли пользователя root следующие команды:

groupadd -g 99 nogroup &&
useradd -c "Unprivileged Nobody" -d /dev/null -g nogroup \
    -s /bin/false -u 99 nobody

Установите в роли пользователя root скрипт samba с помощью следующей команды:

make install-samba

Если хотите, то установите скрипт winbind:

make install-winbind

Конфигурирование SWAT

Конфигурирование пакета SWAT

Для конфигурирования установленного пакета Samba можно пользоваться встроенной утилитой SWAT (Samba Web Administration Tool — Средство веб администрирования Samba).

Настройка SWAT с использованием inetd

 

Предупреждение

Команда разработчиков BLFS не рекомендует использовать эти инструкции из-за риска, связанного с безопасностью. Но, поскольку в домашней сети раскрытие пароля root является допустимым с точки зрения риска, ниже приведены эти инструкции.

Сначала вы должны добавить запись в /etc/services и изменить конфигурацию netd. Добавьте эту запись с помощью следующей команды, которую следует выполнить в роли пользователя root:

echo "swat            905/tcp" >> /etc/services

Теперь добавьте запись в файл /etc/inetd.conf с помощью следующей команды, снова выполненной в роли пользователя root:

echo "swat stream tcp nowait.5 root /usr/sbin/swat swat >> /etc/inetd.conf

Выполните команду killall -HUP inetd для того, чтобы заново прочитать измененный файл inetd.conf.

Утилиту SWAT можно запустить, указав в вашем веб-браузере адрес http://localhost:905.

Настройка SWAT с использованием xinetd

В роли пользователя root добавьте в файл /etc/services следующую запись в случае, если вы этого еще не сделали:

echo "swat            905/tcp" >> /etc/services

Создайте файл Samba для пакета xinetd-2.3.14 как /etc/xinetd.d/swat.

 

Предупреждение

Для того, чтобы добавить другой хост (хосты), вы можете изменить или удалить строку "only_from", приведенную ниже. Разработчики проекта BLFS не рекомендуют это делать из-за риска, связанного с безопасностью. Однако в среде домашней сети, раскрытие пароля root может считаться допустимым риском.

cat >> /etc/xinetd.d/swat << "EOF"
# Begin /etc/xinetd.d/swat

service swat
{
    port            = 905
    socket_type     = stream
    wait            = no
    instances       = 5
    only_from       = 127.0.0.1
    user            = root
    server          = /usr/sbin/swat
    log_on_failure += USERID
}

# End /etc/xinetd.d/swat
EOF

Выполните команду killall -HUP xinetd для того, чтобы прочитать новый файл /etc/xinetd.d/swat.

Замечание

Если при сборке пакета Samba вы скомпоновали пакет Linux-PAM, вам необходимо создать файл /etc/pam.d/samba.

Теперь утилиту SWAT можно запустить, указав в вашем веб-браузере адрес http://localhost:905.

Настройка SWAT с использованием stunnel

Лучший способ настроить SWAT для доступа к сети, это использовать пакет Stunnel-4.46. С целью удобства для настройки SWAT через stunnel предлагается использовать загрузочный скрипт. Сначала создайте конфигурационный файл stunnel:

cat >> /etc/stunnel/swat.conf << "EOF"
; File: /etc/stunnel/swat.conf

pid    = /run/stunnel-swat.pid
setuid = root
setgid = root
cert   = /etc/stunnel/stunnel.pem

[swat]
accept = swat
exec   = /usr/sbin/swat

EOF

Затем установите загрузочный скрипт swat:

make install-swat

После того, как будет запущен загрузочный скрипт SWAT, инструментальное средство будет доступно через браузер по адресу https://localhost:905. Заметьте: https. Если нужно еще ограничить доступ к этому инструментальному средству, то можно использовать пакет Iptables-1.4.12.

Описание пакета

Установленные программы: cifs.upcall, eventlogadm, findsmb, ldbadd, ldbdel, ldbedit, ldbmodify, ldbrename, ldbsearch, net, nmbd, nmblookup, ntlm_auth, pdbedit, profiles, rpcclient, sharesec, smbcacls, smbclient, smbcontrol, smbcquotas, smbd, smbget, smbpasswd, smbspool, smbstatus, smbtar, smbtree, swat, testparm, wbinfo, winbindd и (если не используется системное TDB) tdbbackup, tdbdump и tdbtool

Установленные библиотеки: libnss_winbind.so, libnss_wins.so, libnetapi.so, libsmbclient.so, libsmbsharemodes.so, libtalloc.so, libwbclient.so, the pam_winbind.so and pam_smbpass.so PAM libraries и в ассортименте набор символов, файловая система и модули поддержки.

Установленные директории: /etc/samba, /usr/lib/samba, /usr/share/doc/samba-3.6.1, /usr/share/samba, /var/lib/samba и (если сконфигурировано) /var/log/samba

Краткое описание

cifs.upcall

вспомогательная программа, обращающаяся к пользовательскому пространству и предназначенная для использования с файловыми системами Common Internet File Systems (CIFS)

eventlogadm

используется для записи сообщений STDIN в журнал событий, добавления записей из указанного источника и DLL в журнал событий и отображения имен активных журналов событий (из smb.conf)

findsmb

выдает информацию о машинах, которые в подсети отвечают на запросы SMB

ldbadd

утилита командной строки, используемая для добавления записей в базу данных LDB

ldbdel

программа, работающая из командной строки и удаляющая записи базы данных LDB

ldbedit

позволит вам редактировать базы данных LDB с использованием вашего любимого редактора

ldbmodify

позволит вам изменять записи в базе данных LDB

ldbrename

позволит вам редактировать базы данных LDB с использованием вашего любимого редактора

ldbsearch

ищет в базе данных LDB записи, соответствующие указанному выражению

net

инструментальное средство администрирования серверов Samba и удаленных серверов CIFS, похожее на утилиту net, имеющуюся в DOS/Windows

nmbd

сервер имен Samba NetBIOS

nmblookup

используется для запроса имен NetBIOS и отображения их в адреса IP

ntlm_auth

это инструментальное средство, позволяющий осуществлять внешний доступ к функции аутентификации NTLM пакета Winbind

pdbedit

инструментальное средство, используемое для управления базой данных SAM

profiles

это утилита, которая сообщает о значениях SID и изменяет эти значения в файлах реестра Windows. В настоящее время поддерживается работа только для Windows NT

rpcclient

используется для выполнения на стороне клиента функций MS-RPC

sharesec

управляет правами совместного доступа ACL в файловых ресурсах общего доступа SMB

smbcacls

используется для работы со списками контроля доступа Windows NT

smbclient

утилита доступа SMB/CIFS, похожая на FTP

smbcontrol

используется для управления работой демонов smbd, nmbd и winbindd

smbcquotas

используется для управления квотами Windows NT для файловых ресурсов общего доступа в SMB

smbd

основной демон Samba, предоставляющий клиентам сервисы SMB/CIFS

smbget

простая утилита с семантикой, похожей на семантику wget, которая может загружать файлы с серверов SMB. Вы можете в командной строке указать файлы, которые вы хотели бы загрузить

smbpasswd

изменяет пользовательский пароль Samba

smbspool

посылает задание для печати на принтер SMB

smbstatus

сообщает о текущих соединениях Samba

smbtar

скрипт командной оболочки, используемый для резервного копирования общедоступных ресурсов SMB/CIFS непосредственно на ленточное устройство или в файла на Linux

smbtree

текстовый браузер сети SMB

swat

инструментальное средство администрирования Samba через веб (Samba Web Administration Tool)

tdbbackup

инструментальное средство, используемое в Samba для резервного копирования и проверки целостности файлов .tdb

tdbdump

инструментальное средство, используемое для печати в Samba содержимого файлов .tdb

tdbtool

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

testparm

проверяет правильность синтаксиса файла smb.conf

wbinfo

выполняет запрос к работающему демону winbindd

winbindd

выполняет разрешение имен серверов Windows NT

libnss_winbind.so

предоставляет функции API переключения сервиса имен (Name Service Switch API), используемые для разрешения имен серверов Windows NT

libnss_wins.so

предоставляет функции API, реализующие в Samba сервис интернет-имен Windows

libnetapi.so

предоставляет функции API административным инструментальным средствам, используемым для серверов Samba и удаленных серверов CIFS

libsmbclient.so

предоставляет функции API клиентским инструментальным средствам Samba SMB

libsmbsharemodes.so

предоставляет функции API, предназначенные для управления режимами доступа к общедоступным ресурсам SMB (блокировка и т.д.)

libwbclient.so

предоставляет функции API клиентским службам домена Windows

Перевод сделан с варианта оригинала, датированного 2011-11-13 02:22:21 +0000


Предыдущий раздел: Оглавление Следующий раздел:
Пакет rsync-3.0.94   Пакет Wget-1.13.4