Сервер самба что это такое
Установка и настройка Samba сервера и клиентов
Samba — это приложение сетевого протокола SMB, используемого для подключения принтеров, службы директорий в доменных сетях и создания мультиплатформенных общих ресурсов. В данном руководстве мы рассмотрим установку и настройку Samba-сервера, который позволит создавать различные сетевые хранилища и общие ресурсы.
Установка Samba
Samba легко устанавливается из менеджера пакетов, но перед установкой нового пакета нужно выполнить обновление. Воспользуйтесь следующими командами (здесь и далее приводятся примеры для Ubuntu 16.04):
Служба NetBios для Samba (nmbd) в наших примерах не требуется, поэтому в целях безопасности вы легко можете отключить ее командами:
Установка глобальных опций Samba
Параметры конфигурации Samba хранятся в файле /etc/samba/smb.conf. В нем есть два раздела, global и shares. В разделе global прописаны параметры самого сервера (имя сервера, его тип, интерфейсы и другие сетевые настройки), а в разделе shares — параметры ресурсов. Вместо редактирования файла создадим новый. Предварительно сохранив оригинал:
Внесем в наш новый файл /etc/samba/smb.conf следующий код
Рассмотрим значение этих параметров.
Уровень лога 3 означает, что сохраняется более детальная информация, чем при стандартном ведении лога. Стандартный уровень — 1, максимальный — 5. Здесь он установлен для параметров passdb и auth, чтобы получать более подробную информацию об аутентификации пользователей. После определения параметров ведения лога сохраните и закройте файл. При необходимости файл smb.conf нужно протестировать на синтаксические ошибки при помощи утилиты Samba testparm:
Будет выведен следующий результат:
После нажатия на клавишу Enter будут выведены глобальные параметры:
Если в результате выводится “Load services files OK”, значит, в файле нет ошибок и сервер можно запускать.
Теперь нужно настроить конфигурацию ресурсов. Ресурс состоит из двух элементов, пользователя и директории, которые необходимо создать для обеспечения возможности подключения и тестирования.
Создание пользователей Samba
В данном разделе мы создадим профили пользователей, которые смогут осуществлять доступ к серверу. Им потребуется доступ как пользователям Samba и как пользователям системы, чтобы при входе в систему они проходили аутентификацию на сервере Samba и могли осуществлять чтение и запись в файловой системе.
Помимо обычных пользователей нужно создать администратора, у которого будет возможность доступа к персональным ресурсам и их администрирования. Также администратор будет владеть общими ресурсами, доступ к которым разрешен всем.
Для каждого пользователя нужно создать домашнюю директорию. Вместо использования стандартной директории /home/user лучше создать пероснальную директорию в /samba/ для разделения данных и более удобного резервного копирования. Сначала создадим группу sambashare, директорию для хранения данных samba и назначим ее владельцем группу sambashare
Затем нужно создать директорию пользователя (в примере мы рассмотрим создание пользователя ivan, для нескольких пользователей создание будет аналогичным): Добавим системного пользователя:
В команде используются параметры:
—home: месторасположение домашней директории пользователя.
—no-create-home: указывает команде adduser не создавать домашнюю директорию, чтобы не заполнять ее ненужными файлами конфигурации.
—shell: определяет, какая оболочка будет использоваться при входе через SSH. В данном примере SSH не используется, поэтому значение /usr/sbin/nologin отключает вход через SSH.
—ingroup sambashare: внесение пользователя в группу sambashare, чтобы обеспечить ему возможность чтения и записи для своего ресурса и общих ресурсов.
Более подробно про создание пользователей и групп можно прочитать в этой статье
После запуска команды потребуется создать пароль.
Теперь нужно установить владельца и права доступа к директории:
Права доступа 2770 означают, что новые файлы или директории, созданные в /samba/david/, будут наследовать группу владельцев от родительской директории, а не от группы пользователей, которая их создала. Например, если администратор создаст новую директорию в ресурсе пользователя ivan, то ivan будет иметь к ней доступ на чтение и запись.
Другие пользователи создаются аналогичным образом. Для создания пользователя admin нужно выполнить следующие команды, его домашней директорией будет everyone:
Для удобства можно также создать группу администраторов, это позволит не прописывать права доступа ко всем ресурсам при изменении администратора, а один раз прописать их для группы и в дальнейшем добавлять и удалять администраторов одной командой:
Настройка системы завершена, теперь нужно настроить ресурсы.
Настройка общих ресурсов Samba
У каждого ресурса есть свой раздел в файле конфигурации /etc/samba/smb.conf. Разделы ресурсов расположены после глобальных параметров и имеют следующий вид
share_name — имя ресурса, используемое при доступе.
path — полный путь к ресурсу в файловой системе.
browsable — опоеделяет видимость ресурса для других пользователей, но не дает им прав доступа.
read only — определяет возможность доступа на запись для пользователей, указанных в параметре valid users.
force create mode — задает указанные права доступа к любому файлу, создаваемому в ресурсе.
force directory mode — задает указанные права доступа к любой директории, создаваемой в ресурсе
valid users — список пользователей, имеющих доступ к ресурсу. Здесь можно указывать имена или группы, перед группами нужно указывать символ @, например, @admins.
Для настройки конфигурации ресурса нужно в любом текстовом редакторе добавить в файл конфигурации блоки следующего вида для каждого пользователя:
Для ресурса everyone блок будет выглядеть следующим образом:
Все пользователи будут иметь доступ на чтение и запись, так как были добавлены в группу sambashare при создании. Теперь нужно протестировать параметры
Если все настроено корректно, результат будет следующим:
После проверки конфигурации запустим сервер и добавим его в автозагрузку командой systemctl:
Сервер работает и готов принимать пользователей.
Настройка клиентов Samba
Для доступа к ресурсам из командной строки в Linux используется утилита smbclient. В большинстве дистрибутивов она не установлена по умолчанию, если нет то нужно воспользоваться менеджером пакетов:
В некоторых дистрибутивах может потребоваться создать файл /etc/samba/smb.conf, так как при его отсутствии будет выводиться сообщение об ошибке. Для доступа к ресурсу нужно выполнить следующую команду:
Например, для доступа к ресурсу ivan на сервере samba.example.com нужно ввести:
Далее потребуется ввести пароль, после чего появится интерфейс командной строки, похожий на интерфейс FTP:
Например, можно создать директорию:
Доступ из командной строки используется в основном для тестирования, на практике доступ чаще всего осуществляется из графических оболочек, например, KDE. Возможен также доступ из других платформ (Windows, MacOS).
Например для доступа с windows наберите в строке поиска \\samba.example.com\ivan. И введите логин пароль
После чего вы сможете получить доступ к сетевым ресурсам.
Заключение
При помощи Samba мы создали мультиплатформенные сетевые ресурсы и протестировали доступ к ним. Ресурсы Samba очень распространены и могут использоваться различными приложениями. Например, VLC Player может проигрывать музыку и видео из ваших ресурсов Samba, а утилита резервного копирования BackupPC — записывать туда резервные копии.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Настройка Samba
Что такое Samba?
Настройка общих папок
Linux
Установка и настройка Samba-сервер для Ubuntu выполняется следующими этапами.
Обновляем информацию о репозиториях и устанавливаем обновления для существующих пакетов в системе:
apt-get update && apt-get upgrade
Устанавливаем пакет Samba:
Создадим резервную копию файла конфигурации:
cp /etc/samba/smb.conf /etc/samba/smb.conf_sample
Создадим директории для файлов, например в каталоге /media:
Важно! По умолчанию, директория /media располагается в корне системы /, для нее редко создается свой раздел. По этой причине возможно переполнение корневого раздела. Во избежание этой неприятной ситуации, рекомендуем монтировать отдельный жесткий диск в /media/samba.
Создаем каталог для всех пользователей:
Изменим права доступа к каталогу:
Также следует воспользоваться командой chown для смены владельца и/или группы.
Создаем директорию для ограниченного круга лиц:
С помощью системных инструментов создадим группу пользователей:
Добавляем пользователей Samba:
Созданных пользователей добавляем в группу:
Изменим группу, которой принадлежит приватная директория:
chgrp smbgrp /media/samba/private
С помощью инструментов Samba создадим пароль для добавленного пользователя:
С помощью текстового редактора, например, nano, редактируем конфигурационный файл samba:
Удаляем все строки из файла. Вставляем следующие:
[global]
workgroup = WORKGROUP
security = user
map to guest = bad user
wins support = no
dns proxy = no
[public]
path = /media/samba/public
guest ok = yes
force user = nobody
browsable = yes
writable = yes
[private]
path = /media/samba/private
valid users = @smbgrp
guest ok = no
browsable = yes
writable = yes
Сохраняем используя сочетание Ctrl + X, затем нажимаем Y и Enter.
Объясним значения строк. конфигурационный файл состоит из трех секций:
В секции global присутствуют пять параметров:
Настройки директорий выполняются в соответствующих секциях:
Важно! Имя директории общего доступа, отображаемое пользователям, равно имени секции в которой оно описано.
Домашний сервер. Часть 2. FTP, Samba и rTorrent
Пришло время организовывать файловое хранилище, как внутри сети так и снаружи. Данная статья является продолжением первой части, посвященной настройки WiFi роутера на Вашем домашнем сервере. Все жесткие диски с Вашего домашнего компьютера(кроме системного) можно перенести на сервер, поскольку скорость передачи данный колеблется в районе 10-20 мегабайт в секунду [данный параметр еще и очень сильно зависит от модели Вашего жесткого диска], да и кстати, давно уже пора для системного диска покупать SSD накопители.
FTP Server.
Существует множество ftp серверов для linux, много хороших, много плохих, но есть лучший [естественно, что это субъективное мнение, и лучший он для меня] и это vsftpd. Его мы и будем рассматривать.
Скачать его можно из стандартных репозитариев OpenSUSE, выполнив в терминале команду:
Теперь перейдем к описанию. Это консольный ftp server, у него нет GUI [графическая оболочка], поэтому вся настройка происходит в одном единственном конфиге, по адресу /etc/vsftpd.conf.
Вот пример рабочего конфига:
В приведенном выше конфиге нет заморочек для распределения прав доступа отдельным пользователям, отдельных папок. Всё довольно просто и лаконично, настроил один раз и пользуешься [пользуются]. Vsftpd был выбран, потому что у него лучшая система настройки прав доступа, которая подразделяется на два вида: внутренняя, системная аутентификация и внешняя, с отдельным конфигурационным файлом для распределения прав доступа, но при этом, пользователи всё также берутся из системы.
В данном примере и пользователи, и распределение прав доступа этих самых пользователей берется из системы, дополнительный конфиг-файл не используется.
Рисунок 1. Выставление прав
На этом собственно всё.
Samba.
Хотите всегда иметь под рукой файловое хранилище всех коллекций и всего прочего с ноутбука, с домашнего компьютера, с телефона, с планшета? Поехали.
Изначально, при стандартной установке системы OpenSUSE всё что нужно для установки и настройки samba на сервере уже предустановлено. Поэтому перейдем непосредственно к настройке. Поскольку доступ из под ОС Windows в качестве «Подключения сетевого диска» будет доступен только внутри Вашей локальной сети [для интернета есть ftp сервер, да и к тому же, вывешивать самбу в интернет крайне не безопасно, а мы же, — «ЗА СЕКЬЮРНОСТЬ. УРА!»] поэтому настройки будут крайне банальны и просты в понимании. Есть два [известных мне и адекватных на мой взгляд] настройки самбы, это через, всё тот самый, конфигурационный файл и при помощи утилиты — WebMin. Это дико-крутая штука, особенно для тех, кто не любит ковырять конфиги [но и здесь есть свои ньюансы]. В данной статье не будем останавливаться на средствах «для ленивых«, поэтому продолжаем. Мы будем рассматривать рабочий конфиг файл. Находится он по адресу: /etc/samba/smb.conf. Вот он:
Также, дополнительную настройку можно выполнить через встроенный в YaST GUI samba.
Того пользователя, что мы указали в самом начале конфига, в данном примере это пользователь nobody, необходимо создать непосредственно в системе. Задать ему необходимые права (дома, имеет смысл поставить полные права, на создание, удаление, редактирование всех файлов и папок (т.е. права 777). Также, если Вы столкнетесь с ситуацией, когда по какой-то причине станет невозможным удаление/создание файлов в какой-либо из папок на сервере, то выполните команду:
Разберем её, на всякий случай:
chmod — команда установки прав.
777 — собственно права, в буквенном обозначении означают rwx, rwx, rwx — права чтение, запись, выполнение для владельца, группы(где состоит владелец), всех.
-R — ключ рекурсии, для того чтобы команда выполнилась не только для той папки(и файлов, находящихся в ней), которую Вы указали в /path, но и для всех под-папок и файлов в них тоже.
/path — путь до папки, на которую необходимо установить права. Аналогичная команда соответствует FTP серверу, если возникли похожие проблемы. Да, и надо оговориться, что если возникают подобные проблемы, то скорей всего проблема кроется в пользователях созданных в системе, а точнее в правах, выданных на использование их домашних директорий.
rTorrent.
Полу-автоматизированный торрент клиент.
На самом деле, это обычный торрент клиент, но, возможности настройки которого, очень богаты разнообразием. Сейчас мы с Вами разберём одну очень полезную функцию данного клиента. Представьте, Вы уже настроили самбу на Вашем домашнем сервере, файловое хранилище, находящееся на сервере подключена к Вашему компьютеру как Сетевой Диск, Вы открываете Ваш сетевой диск, открываете папку torrents, там открываете папку music и перемещаете туда все торрент файлы с музыкой, которые Вы хотите скачать и… всё, ложитесь спать. На утро уже будут скачены и проверены хеши всех торрентов, что Вы туда положили (тут конечно всё зависит от того сколько торрентов Вы хотите скачать, какой у них вес и какова ширина Вашего интернет канала). Нравится? Вот и я балдею уже как пол года, от этой функции.
Давайте разбираться.
Вам надо установить rtorrent, выполняем следующую команду в терминале:
Рисунок 2. Главное окно программы rTorrent
Собственно и все. Далее хитрый приём, — открываем консоль и пишем(можно и по ssh зайти на сервер):
screen rtorrent
Далее, в терминале откроется торрент-клиент, там же Вы его можете настроить и отладить дополнительно. Теперь нажимаем волшебные комбинации клавиш Ctrl+A затем Ctrl+D и консоль радостно Вас оповестит, что:
[detached]
Рисунок 3. «Заскринивание» процесса программы rTorrent.
Это говорит о том, что процесс Вашего торрент-клиента «закринин», то есть выполняется, но его при этом не видно. Для тех, адептов, кому всегда, всё интересно, может прочесть вот здесь про данную утилиту обременять голову такими вещами (хотя, они очень интересные и познавательные, и применяются часто) принудительно я не хочу.
Если Вам понадобилось заного открыть клиент, пишем:
На этой «важной» ноте, я хочу закончить данную статью. Спасибо за внимание, и да, пользуйтесь поисковиком Google, он молодец!
Если ошибся топиком, подскажите куда перенести.
Samba — первые шаги
Введение
В общей структуре корпоративных сетей Microsoft Windows и Linux зачастую существуют как разобщенные миры. Попытки обеспечить «прозрачный» доступ сетевых клиентов Windows к ресурсам UNIX зачастую порождают множество проблем. Одним из способов, позволяющих их решить, является использование в UNIX/Linux протокола Server Message Block (SMB — Samba), который иногда также называется протоколом Session Message Block (SMB), протоколом NetBIOS или протоколом LanManager. Этот протокол не является разработкой Microsoft, однако он хорошо адаптирован для использования в сетях на основе Windows. Хотя эта статья и посвящена Linux, тем не менее Samba может работать на большинстве UNIX-подобных операционных систем. И еще одно замечание: в данной статье мы рассмотрим пакет SMB с точки зрения малого предприятия, которому нужен локальный файл- или принт-сервер, либо домашнего пользователя, имеющего несколько компьютеров и желающего, чтобы машины совместно использовали ресурсы. Поэтому даже начинающий администратор UNIX/Linux может принять эту статью как руководство к действию.
Что умеет Samba
Samba — это программа, которая позволяет компьютерам UNIX/Linux имитировать машины Windows. При помощи Samba компьютеры могут обмениваться файлами или управлять заданиями на печать как файл-серверы или серверы печати под Windows. Подобно операционной системе UNIX/Linux, на которой она работает, Samba представляет собой разработанное множеством программистов ПО с открытым исходным кодом.
Протокол SMB используется Microsoft Windows 2000, NT и 95/98 для организации доступа к дискам и принтерам. Используя набор утилит Samba от Andrew Tridgell (Andrew.Tridgell@anu.edu.au), UNIX-машины (включая Linux) могут организовывать доступ к дискам и принтерам для Windows-машин. Утилиты smbfs, написанные Paal-Kr. Engstad (pke@engstad.ingok.hitos.no) и Volker Lendecke (lendecke@namu01.gwdg.de), дают возможность машинам с UNIX монтировать SMB-ресурсы, доступные на машинах с Windows или Samba.
C помощью Samba можно реализовать следующие наиболее распространенные:
Далее в статье будет дано подробное описание того, как это все реализовать.
Инсталляция и тестирование Samba
А также c чтения документации, доступной на сайте http://www.samba.org/. Следует отметить, что для использования Samba ваша машина должна находиться в одиночном Ethernet-сегменте локальной сети, при этом используя протокол TCP/IP. Samba не будет работать при использовании других сетевых протоколов. Это, в принципе, легко, поскольку Linux и Windows 95/98/NT поставляются с поддержкой TCP/IP. Однако если вы используете машины с Windows 3.x, то вам необходимо добавить поддержку TCP/IP.
Где взять
Для того чтобы получить исходные тексты последней версии Samba, свяжитесь с сайтом http://www.samba.org/ и выберите ближайший к вам сервер-зеркало: ftp://ftp.samba.org/. Пакет Samba входит в состав дистрибутивов ряда UNIX/Linux-систем, например Rad Hat или Suse Linux. Внимательно изучите документацию вашего Linux, и, вполне возможно, что вам будет достаточно только вставить CD и инсталлировать пакеты Samba. В этом случае вы можете продолжать чтение статьи со следующей главы.
После получения данного пакета извлекаем все то, что находится под «грифом» *.tar.gz, например, в директорию /tmp (причем для этого не обязательно быть root’ом :), то есть:
Если у вас не возникло никаких проблем при извлечении данного пакета, вы обнаружите новую директорию, например samba-latest, и в ней извлеченные файлы. Перейдите в нее, загляните в файлы «README» и «Manifest» — инструкция по инсталляции находится в последнем файле и выглядит примерно так:
Теперь надо обратить внимание на то, где находятся ваши файлы конфигурации. Большинство дистрибутивов Samba по умолчанию помещает их в директорию /etc, а себя — в директорию /usr/local/samba.
Конфигурирование Samba
Основная информация о конфигурации Samba находится в файле smb.conf. С этим файлом следует обращаться осторожно. Если вы планируете каким-либо образом изменить работающую версию, обязательно сделайте копию.
Для того чтобы первый раз запустить сервер, необходимо иметь рабочую версию файла smb.conf. Перейдите в директорию, в которой должен находиться ваш конфигурационный файл. Скорее всего это будет /etc или /usr/local/samba/lib. Сделайте копию данного файла, например smb.old, — это возможно при наличии прав root. Теперь, когда у вас есть «чистый» файл, можно ввести самую простую конфигурацию, то есть набрать следующие строки:
Ниже мы разберемся, что означают эти строки в файле конфигурации, но сначала временно отвлечемся от него и перейдем к демонам SMB.
Запуск демонов
Имеется два демона SMB: /usr/sbin/smbd и /usr/sbin/nmbd. Вы можете запустить демоны Samba из inetd или как автономный процесс. Samba будет отвечать чуть быстрее в случае, если она запущена как автономный процесс.
Иногда бывает необходимо проверить наличие в файле /etc/services примерно таких строк:
Убедитесь, что все они не закомментированы. В зависимости от вашего дистрибутива вам, вероятно, даже понадобится добавить их в этот файл. Samba не сможет привязаться к соответствующим портам, до тех пор пока этих строк не будет в файле /etc/services.
Для запуска демонов из inetd поместите следующие строки в конфигурационный файл inetd, /etc/inetd.conf:
Затем перезапустите демон inetd, выполнив команду:
Для запуска демонов из системных стартовых скриптов поместите следующий скрипт в файл /etc/rc.d/init.d/smb (для дистрибутива RedHat) или /etc/rc.d (для дистрибутива Suse Linux) и создайте на него символические ссылки с именами вида /etc/rc.d/rcX.d/S91smb (запускает сервисы SMB в многопользовательском режиме), /etc/rc.d/rcX.d/K91smb (убивает сервисы SMB при выключении), /etc/rc.d/rc6.d/K91smb (убивает сервисы SMB при перезагрузке), где X — номер загрузочного уровня системы, обычно это цифра 2 или 3.
Если при старте Samba вы получаете сообщение, в котором говорится, что демон не может подключиться к порту 139, то скорее всего у вас уже есть запущенные процессы Samba, которые не были завершены. Посмотрите список процессов (используя команду ‘ps ax | grep mbd’) для того, чтобы определить, есть ли еще запущенные сервисы Samba. Если же демоны отказываются запускаться по каким-либо другим причинам, то вероятнее всего этот скрипт не подходит к вашему UNIX/Linux и вам придется еще раз покопаться в документации, что-то в нем поправить, а может быть, и переписать.
Простой тест
Будем надеяться на лучшее и считать, что Samba при запуске не выдала никаких сообщений об ошибках. А для того, чтобы проверить, работает ли это реально, надо набрать в командной строке:
Выполняющаяся программа попросит вас ввести пароль. Здесь можете просто нажать Enter. Вот какие строчки должны появиться на мониторе (рис. 2).
Основная настройка smb.conf
Очевидно, что в описанной выше конфигурации Samba может функционировать, но практически не может ничего делать. Ниже будут рассмотрены более полезные и сложные примеры. Но сначала надо разобраться в директивах smb.conf.
Каждый раздел файла начинается с заголовка раздела, такого как [global], [homes], [printers] и т.п.
Секция [global] определяет некоторые переменные, которые Samba будет использовать для определения доступа ко всем ресурсам. Раздел [homes] позволяет удаленным пользователям иметь доступ к своим (и только своим) домашним директориям на локальной Linux-машине. Так что если пользователи Windows попытаются подключиться к этому разделу со своих Windows-машин, то они будут соединены собственными домашними директориями. Заметим, что для этого они должны быть зарегистрированы на Linux-машине.
Используем текстовый интерфейс
Многие системные администраторы при инсталляции Linux ограничиваются только текстовым интерфейсом, не устанавливая графический (X Windows). Это положительно сказывается на безопасности и быстродействии системы, но делает недоступными утилиты вроде SWAT, работе с которой посвящена нижеследующая часть этой статьи.
Простой файл smb.conf, приведенный ниже, позволяет удаленным пользователям иметь доступ к своим домашним директориям на локальной машине и помещать информацию во временную директорию. Пользователи Windows могут увидеть эти ресурсы, подключив сетевые диски, при этом естественно — машина с Linux должна иметь выход в локальную сеть. Заметим, что будут приведены дополнительные записи для этого файла, чтобы дать доступ к большему количеству ресурсов.
Написав новый файл smb.conf, полезно проверить его правильность. Для этого можно использовать утилиту ‘testparm’ (предварительно заглянув на справочную страницу testparm); если testparm сообщает об отсутствии проблем, то smbd правильно загрузит файл настроек.
Имейте в виду: если ваш сервер Samba имеет больше одного Ethernet-интерфейса, то smbd может подключиться к неправильному. Чтобы заставить ее подключаться к нужному, можно добавить в раздел [global] файла /etc/smb.conf следующую строку:
Теперь можно запускать Sambа. При этом необходимо учитывать, что чем больше сервисов настроено на вашем сервере, тем более он оказывается уязвим.
Вот как это делается с помощью ipfwadm:
Это запретит (deny) все входящие и исходящие TCP- и UDP-пакеты для портов 137-139 на интерфейсе eth0. Для получения более подробной информации рекомендуем почитать man ipfwadm.
При наличии ядер 2.1-2.2 вы сможете сделать это с помощью ipchains:
Как видите, здесь нет ничего нового и сложного. Как ipfwadm, так и ipchains выполняют одинаковые функции, только для разных версий ядер.
Однако если вам не нравится редактировать конфигурационные файлы вручную и на вашем Linux-сервере установлен графический интерфейс, то вы можете упростить настройку smb.conf, воспользовавшись Samba Web Administration Tool (SWAT).
Используем SWAT
Для использования SWAT проверим два конфигурационных файла: services (/etc/services) и inetd.conf (/etc/inetd.conf).
По умолчанию SWAT запускается с 901-го порта, но при желании это можно изменить. Итак, проверяем вышеуказанные конфигурационные файлы:
Если эта строка присутствует в /etc/service, то все нормально. Если строки нет, добавьте ее в конец файла. Данная строка говорит нам о том, что SWAT запускается на 901-м порте.
Теперь в файл inetd.conf (/etc/inetd.conf) добавляем следующую строку:
Затем перезапустим inetd:
Далее в браузере набираем:
В случае если все настроено правильно, вы увидите форму, в которой нужно ввести имя пользователя (username) и пароль (password). Здесь введите имя и пароль пользователя «root».
Итак, SWAT запущен. Теперь можно ознакомиться с его работой. Как вы видите, SWAT — это программа с прекрасным интерфейсом, которая создает конфигурационный файл /etc/smb.conf.
Детальная настройка
Файловый сервер под Linux
Как показано выше, организация доступа к дискам Linux для пользователей Windows с помощью файла smb.conf является довольно простым делом. Однако Samba позволит вам в большой степени контролировать этот процесс. Приведем несколько примеров.
Для организации доступа для всех добавьте в smb.conf следующие строчки:
Вы получили возможность запустить Samba и просмотреть доступные ресурсы с компьютера под управлением Windows. Однако все может оказаться не так-то просто. Начиная с Windows NT 4 в операционных системах Microsoft, в том числе и в среде Windows 98 (начиная с NT Service Pack 3), происходит передача закодированных паролей по сети. Вы непременно столкнетесь с этой проблемой, если версия пакета Samba, установленная на вашем UNIX/Linux-сервере, ниже 2.0.5а и не поддерживает закодированные пароли.
В случае несоответствия типов паролей между клиентом и сервером при попытках подключиться к ресурсу в окне диалога будет указано примерно следующее: «You are not authorized to access that account from this machine».
Подобную проблему можно решить двумя путями. Во-первых, можно настроить Samba-сервер для использования шифрованных паролей. Во-вторых, заставить Windows работать с нешифрованными паролями SMB. Если это Windows 98, то последовательность ваших действий должна быть такова: используя редактор registry (regedit), создайте ключ registry:
Добавьте значение типа DWORD:
Имя значения: EnablePlainTextPassword Данные: 0x01.
Для Windows NT эта же последовательность действий выглядит так:
Добавьте значение типа DWORD:
Имя значения: EnablePlainTextPassword Значение: 0x01.
После того как вы сделали эти изменения, перезагрузите машину с Windows и попытайтесь подключить сетевой диск к серверу Samba. Это должно работать, поскольку сервер Samba использует пароли в нешифрованном виде.
При использовании вашими клиентами и вашим сервером шифрованных паролей вы не сможете просмотреть списки доступных ресурсов до тех пор, пока начальное соединение не будет сделано с правильными параметрами входа. Для того чтобы сделать первоначальное соединение, в диалоговом окне Windows File Manager или Explorer введите вручную имя ресурса в форме \\hostname\sharename. Подключитесь к серверу посредством правильных для данного сервера имени и пароля.
Если вы подозреваете, что ваш сервис имен NetBIOS неправильно настроен (возможно, потому, что вы получаете сообщение об ошибке «host not found (машина не найдена)» при попытке подключения), попытайтесь использовать IP-адрес сервера: \\host ip address\sharename.
Если вы хотите видеть Samba-директорию в качестве сетевого диска, то вам следует сделать на Windows-машинах следующие настройки.
Сначала удостоверимся, что свойства сети настроены так, как нам надо. Для этого заходим в свойства сети (щелкаем правой клавишей мыши на значке рабочего стола «Сетевое окружение» (Network Neighborhood) и выбираем «Свойства»). Далее заходим на закладку «Компьютер» (Identification). В поле «Имя компьютера» (Computer name) прописываем Galka, в закладке «Рабочая группа» (Workgroup) — PTO, а в закладке «Описание компьютера» (Computer Description) можете прописать что угодно (рис. 3).
Дальше переходите на закладку «Управление доступом» (Access Control) и поставьте флажок в поле «На уровне ресурсов» (Share-level access control).
Теперь переходите в самую первую закладку «Конфигурация» (Configuration) и нажмите на кнопке «Доступ к файлам и принтерам» (File and print sharing). В появившемся окне необходимо поставить флажки в поле «Файлы этого компьютера можно сделать общими» (I want to be able to give others access to my files) и «Принтеры этого компьютера можно сделать общими» (I want to be able to allow others to print to my printer(s)).
И наконец, мы указываем Windows, что Samba является сервером WINS и именно он будет browse master’ом. Для этого переходим в свойства TCP/IP-протокола (рис. 4). В появившемся окне выбираем «Конфигурация WINS» (WINS Configuration). Ставим флажок в поле «Включить распознавание WINS» (Enable WINS Resolution). В появившемся поле «Основной сервер WINS» (WINS Server Search Order) прописываем IP-адрес сервера (Samba) — 192.168.0.1 и нажимаем «Добавить» (Add) или просто [Enter]. Переходим на закладку «Дополнительно» (Advanced) и нажимаем на «Browse Master» в левом окне, а в правом устанавливаем значение «Disabled». Вот и все. Теперь остается только несколько раз нажать кнопку «ОК» и перезагрузить Windows.
В Windows NT экраны свойств сети немного различаются (показаны на рисунках), но главная концепция построения остается той же.
После перезагрузки Windows смело жмите на «Сетевое окружение» (Network Neighborhood) и вы сможете увидеть Samba-сервер, а также свою домашнюю директорию на Linux-сервере. Теперь вы можете просто подключить данные ресурсы как сетевые диски и присвоить им drive letters.
Немного усложним конфигурацию: сделаем директорию /home/public доступной для чтения всеми, но разрешим помещать в нее информацию только людям из группы ADMINS. Для этого изменим запись следующим образом:
Можно привести еще много разных примеров настроек файлового сервера Samba, но будет лучше, если вы заглянете в документацию Samba или в справочные страницы и разберете их самостоятельно.
Доступ к дискам Windows из Linux
Вряд ли начинающие пользователи Linux OS смогут быстро разобраться с системой доступа к Linux-файлам из-под Windows, и наоборот. Но не все так сложно. Доступ к Linux-ресурсам из под Windows был кратко описан выше, а доступ к Windows-ресурсам из под Linux мы сейчас рассмотрим.
Программа клиента SMB для UNIX/Linux-машин включена в дистрибутив Samba. Она обеспечивает ftp-подобный интерфейс командной строки. Вы можете использовать эту утилиту для переноса файлов между «сервером» под управлением Windows и клиентом под Linux.
Для того чтобы увидеть, какие ресурсы доступны на данной машине, выполните команду:
где host — это имя машины, которую вы хотите видеть. Эта команда вернет список имен сервисов — то есть имен дисков или принтеров, к которым может быть получен доступ. До тех пор пока SMB-сервер не будет настроен без управления доступом, он будет запрашивать у вас пароль. Введите в ответ на запрос пароль для пользователя «гость (guest)» или ваш персональный пароль на этой машине.
Для использования клиента выполните следующую команду:
где service — имя машины и сервиса. Например, если вы пытаетесь обратиться к директории, которая доступна под именем public на машине, названной galka, то имя сервиса должно звучать как \\galka\public.
Вы получите приглашение smbclient:
Команды для использования Samba аналогичны командам ftp, но если вы не умеете пользоваться ни тем ни другим, напечатайте h, чтобы получить помощь.
Вы, конечно, можете использовать smbclient для тестирования, однако очень скоро вам это надоест. Для работы вам вероятнее всего понадобится пакет smbfs. Smbfs поставляется с двумя простыми утилитами — smbmount и smbumount. Они работают подобно mount и umount для SMB-ресурсов. Например,
В итоге вы получите «подмонтированный» ресурс с возможностью обращения к нему привычными методами проводника.
Принт-сервер под Linux
Для организации доступа к Linux-принтеру с Windows-машин вам необходимо убедиться, что принтер работает под Linux. Если вы можете печатать под Linux, то организация доступа к принтеру будет очень проста.
Добавьте настройку принтера в ваш файл smb.conf:
Убедитесь, что путь к принтеру (в нашем случае для [ljet]) соответствует буферной директории, указанной в файле /etc/printcap, то есть проверьте наличие строк:
Эти строки контролируют, должны ли все принтеры, перечисленные в /etc/printcap, быть загружены по умолчанию. В этом случае нет нужды в настройке каждого принтера в отдельности. Раздел [printers] указывает настройки для принтеров, которые вы хотите определить явно. Если используемая вами подсистема печати не работает подобным образом (BSD), то вам необходимо настроить фальшивый файл printcap (либо использовать ‘print command’, см. ниже). Для получения дополнительной информации о системе printcap см. Printing-HOWTO.
Доступ к принтеру Windows с машин, работающих под Linux
Для доступа к принтеру на Windows-машине необходимо соблюдение следующих условий:
Запись в приведенном ниже файле /etc/printcap сделана для принтера HP 5MP на сервере Windows NT. Используются следующие поля файла /etc/printcap:
Фрагмент файла /etc/printcap:
Убедитесь, что буферные директории и директория, применяемая для учета пользования, существуют и имеют право на запись. Убедитесь, что строка «if» содержит правильный путь к скрипту smbprint (дан ниже) и что записи указывают на правильное устройство вывода (специальный файл /dev).
Большинство дистрибутивов Linux поставляется с программой nenscript для преобразования ASCII-документов в PostScript.
Заключение
Еще совсем недавно возможности Samba ограничивались лишь перечисленными выше. Однако можно с уверенностью говорить о том, что новая версия Samba 2.2 догоняет Windows 2000 по функциональным возможностям и содержит дополнительные усовершенствования. Один из ведущих разработчиков Samba Джереми Эллисон (Jeremy Allison) называет ее «важным обновлением», которое поможет системам Samba легче внедряться в сети Microsoft. ПО обеспечивает экономию не только потому, что не нужно платить за серверную ОС, но и потому, что не приходится оплачивать «клиентские» лицензии за все компьютеры, которые используют сервер.