Библиотека сайта rus-linux.net
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, приведенному ниже, параметр |
Установите пакет 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.
ЗамечаниеВы можете решить, что проще скопировать конфигурационные параметры, приведенные ниже, в пустой файл |
Сценарий 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 не рекомендуют это делать из-за риска, связанного с безопасностью. Однако в среде домашней сети, раскрытие пароля |
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, вам необходимо создать файл |
Теперь утилиту 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 для резервного копирования и проверки целостности файлов |
tdbdump | инструментальное средство, используемое для печати в Samba содержимого файлов |
tdbtool | инструментальное средство, позволяющее из командной строки достаточно просто управлять базой данных |
testparm | проверяет правильность синтаксиса файла |
wbinfo | выполняет запрос к работающему демону winbindd |
winbindd | выполняет разрешение имен серверов Windows NT |
| предоставляет функции API переключения сервиса имен (Name Service Switch API), используемые для разрешения имен серверов Windows NT |
| предоставляет функции API, реализующие в Samba сервис интернет-имен Windows |
| предоставляет функции API административным инструментальным средствам, используемым для серверов Samba и удаленных серверов CIFS |
| предоставляет функции API клиентским инструментальным средствам Samba SMB |
| предоставляет функции API, предназначенные для управления режимами доступа к общедоступным ресурсам SMB (блокировка и т.д.) |
| предоставляет функции API клиентским службам домена Windows |
Перевод сделан с варианта оригинала, датированного 2011-11-13 02:22:21 +0000
Предыдущий раздел: | Оглавление | Следующий раздел: |
Пакет rsync-3.0.94 | Пакет Wget-1.13.4 |