SAMBA для чего используется, её установка и настройка
Содержание
1.Введение
2.Что же должен обеспечить SAMBA для нормальной работы в сети
3. Настройка SAMBA-сервера в Linux
4. Сетевые ресурсы
5. CD приводы в Unix системах
6. Учетные записи пользователей
7. Сетевая печать
8. Конфигурирование Samba
9. Использование клиента Samba
10. Заключение
11.
Список литературы
1.Введение
Тема: SAMBA для чего используется, её установка и настройка.
Сейчас уже довольно часто в одной локальной сети можно встретить компьютеры под управлением Linux и Windows. Причины такого симбиоза могут быть разными: например, у владельцев интернет-кафе не хватило средств на приобретение лицензионной ОС для всех компьютеров, или системного администратора просто привлекли положительные стороны Linux. Популярность операционных систем от Microsoft во многом определятся клиентским ПО для Windows. Не секрет, что этот сектор программного обеспечения развит очень сильно. Множество фирм приложили к этому серьезные усилия и создали действительно хорошие, а главное, удобные в использовании программы, которые без труда может освоить даже рядовой пользователь. Зато в качестве сервера позиция Windows уже не так однозначна. Сервер под управлением Unix традиционно отличается надежностью, стабильностью в работе, безопасностью и зачастую меньшими требованиями к системным ресурсам. Но в любом случае, просто подключив компьютеры с разными программными платформами в сеть, мы не получим ожидаемого результата. Вся проблема в том, что у этих двух систем используются разные принципы организации сетевых ресурсов, несовместимые между собой.
Так как милости
Microsoft ждать не приходится, и Windows вряд
ли научится работать с сетевой файловой
системой Unix (NFS) стандартными средствами,
а программ сторонних производителей,
если честно, я не знаю, то наиболее популярным
способом является попытка научить Unix
«притворяться», будто бы он — Windows NT.
Взаимодействие
в сети компьютеров под управлением
Windows построено на использовании
протокола SMB (Server Message Block) — блоках
серверных сообщений. Он обеспечивает
выполнение всех необходимых в этих случаях
задач по открытию и закрытию, чтению и
записи, поиску файлов, созданию и удалению
каталогов, постановке задания на печать
и удалению его оттуда. Все необходимые
для этого действия реализуются в Unix-подобных
операционных системах посредством использования
пакета SAMBA. Возможности его условно
можно разделить на две категории: предоставление
ресурсов (под коими понимается доступ
к системе принтеров и файлам) для клиентов
Windows и доступ к ресурсам клиентов. То есть,
компьютер под управлением Linux может выступать
как в роли сервера, так и клиента. Для
начала рассмотрим вариант SAMBA-сервера.
2.Что же должен обеспечить SAMBA для нормальной работы в сети
В сети Windows — Во-первых, контроль доступа, который может быть реализован либо на уровне ресурсов (share level), когда какому-либо ресурсу в сети назначается пароль и соответствующие правила использования (например, «только для чтения»), при этом имя пользователя не имеет абсолютно никакого значения; либо же более совершенную и гибкую организацию на уровне пользователя, когда для каждого пользователя создается учетная запись, где помимо имени и пароля содержится вся необходимая информация о правах доступа к ресурсу. Прежде чем получить доступ к требуемому ресурсу, каждый пользователь проходит аутентификацию, после чего ему и предоставляются права согласно учетным записям.
Во-вторых, необходима эмуляция прав доступа, определяемых файловой системой. Все дело в том, что у рассматриваемых систем права доступа к файлам и каталогам на диске организованы по-разному.
В Unix— традиционно существует три категории пользователей файлов: владелец (owner), группа (group) и остальные (other). Каждому из этих субъектов могут быть предоставлены права на чтение (read), запись (write) и выполнение (execute).
В Windows NT— система доступа несколько гибче, доступ предоставляется нескольким группам или пользователям, причем соответствующие права доступа определяются раздельно для каждого субъекта. Поэтому полноценно эмулировать средствами SAMBA права доступа, заложенные в NTFS, невозможно.
Windows
9x— дело
обстоит иначе. Еще со времен дедушки ДОСа,
по причине того, что система однопользовательская
и о никаких пользователях и тем более
группах и не могло быть речи, для файловой
системы FAT определено всего четыре атрибута
— только чтение (read only), системный (system),
архивный (archive) и скрытый (hidden).
Плюс ко всему в Windows,
в отличие от Unix, имеет особое значение
расширение файла — те, что предназначены
для выполнения, имеют расширения .exe, .com
или .bat. При копировании файлов с Unix-машин
на компьютеры под управлением Windows
атрибуты устанавливаются так:
- только для чтения — чтение, запись для владельца;
- архивный — выполнение для владельца;
- системный — выполнение для группы;
- скрытый — выполнение для группы.
Сеть Windows-машин может быть организована
как рабочая группа (workgroup), когда компьютеры
независимы друг от друга и на каждом имеется
своя база паролей и логинов со своей политикой
безопасности, а также как домен NT. Вся
база для аутентификации пользователей
и компьютеров управляется главным контролером
домена (PDC, Primary Domain Controler), т.е. централизовано.
Samba позволяет ограничивать доступ на
всех этих уровнях и выполняет функции
«главного браузера» в контексте рабочей
группы или контролера домена.
3.
Настройка SAMBA-сервера
в Linux
Для работы Samba-сервера
необходимо, чтобы были запущены два демона:
smbd, обеспечивающий работу службы печати
и разделения файлов для клиентов Samba (таких
как Windows всех мастей), и nmbd, обеспечивающий
работу службы имен NetBIOS (он может использоваться
и для запроса других демонов служб имен).
Для доступа к клиентам используется протокол
TCP/IP. Как правило, Samba устанавливается
вместе с дистрибутивом Linux.
Это
можно проверить с помощью команды:[sergej@grinder
sergej]$ whereis samba
и вы должны получить:samba:
/usr/sbin/samba /etc/samba /usr/share/man/man7/samba.7.gz
Теперь проверим, запущен ли демон:[sergej@grinder sergej]$ ps -aux | grep smbdroot 1122 0.0 0.6 4440 380 ? S 16:36 0:00 smbd –D
У меня уже, как
видите, запущен. Если у вас нет, а
вы хотите, чтобы он запускался при
загрузке системы, то в Linux Mandrake,
например, отметьте нужный пункт в DrakConf
— стартовые сервисы или в Red Hat
Сontrol-panel — Servise Configuration.
Или запускайте
вручную: ./etc/rc.d/init.d/smb
start. Единственный конфигурационный
файл Samba называется smb.conf и обычно находится
в каталоге /еtc (хотя в AltLinux, например, он
лежит в каталоге /etc/samba). Сервис SAMBA считывает
его каждые 60 секунд, поэтому изменения,
внесенные в конфигурацию, вступают в
силу без перезагрузки, но не распространяются
на уже установленные соединения.
Вот за что я люблю Linux, это за то, что конфигурационные файлы являются обычными текстовыми (к тому же хорошо комментированными внутри), и для того чтобы задействовать большинство параметров, достаточно только раскомментировать соответствующую строчку.
Файл smb.conf —
не исключение. Он состоит из
именованных разделов, начинающихся
с имени раздела, заключенного
в квадратные скобки. Внутри каждого
раздела находится ряд
Как следует из названия, раздел [global] содержит наиболее общие характеристики, которые будут применяться везде, но которые, впрочем, затем можно переопределить в секциях для отдельных ресурсов. Некоторые параметры этого раздела имеют отношение и к настройке клиентской части Samba.
Значения
типичных параметров
секции global:
- workgroup = имя_группы # название рабочей группы в сети
- Windowsnetbios name = имя сервера в сетиserver string = комментарий, который виден в окне свойств просмотра сетиguest ok = yes # разрешение гостевого входа (guest ok = no — гостевой вход запрещен)
- guest account = nobody # имя, под которым разрешен гостевой вход в систему
- security = user # Уровень доступа. user — на уровне пользователя,
- security = share — аутентификация на основе имени и пароля. При хранении базы паролей на другом SMB-сервере используется значения
- security = server и password server = name_server_NT. В случае, если сервер является членом домена, используется значение security = domain, пароль для доступа указывается в файле, определенном с помощью опции smb passwd file = /path/to/file.
Кроме того, при
регистрации могут
Для правильного
отображения русских имен файлов
нужны следующие опции: client code page
= 866 и character set = koi8-r. В дистрибутивах
с хорошей локализацией, например, производных
от Mandrake и русских эта строка уже есть,
иногда ее достаточно просто раскоментировать,
но в большинстве других ее надо дописать
самому.
Опция interfaces =
192.168.0.1/24 указывает, в какой сети
(интерфейсе) должна работать программа,
если сервер подключен сразу к нескольким
сетям. При установке параметра bind interfaces
only = yes сервер будет отвечать на запросы
только из этих сетей.
hosts allow = 192.168.1. 192.168.2. 127. — определяет клиентов, для которых разрешен доступ к сервису.
В секции global
возможно использование различных переменных
для более гибкой настройки работы сервера.
После установки соединения вместо них
подставляются реальные значения. Например,
в директиве log file = /var/log/samba/%m.log, параметр
%m помогает определить отдельный лог-файл
для каждой клиентской машины. Вот наиболее
употребительные переменные используемые
в секции global:
%a
— архитектура
ОС на клиентской машине (возможные значения
— Win95, Win NT, UNKNOWN и т.д.);
%m
— NetBIOS-имя компьютера клиента;
%L
— NetBIOS-имя сервера SAMBA;
%v
— версия SAMBA;
%I
— IP-адрес компьютера
клиента;
%T — дата и время;
%u — имя пользователя,
работающего с сервисом;
%H — домашняя
директория пользователя %u.
Также для более
гибкой настройки применяется директива
include, использующая приведенные выше переменные.
Например: include = /etc/samba/smb.conf.%m — теперь
при запросе с компьютера sales при наличии
файла /etc/samba/smb.conf.sales конфигурация будет
взята из этого файла. Если отдельного
файла для какой-то машины не будет, то
для работы с ней задействуется общий
файл.
Также имеется
интересная возможность создания виртуального
сервера. Для этого используется параметр
netbios aliases:
netbios aliases = sales accounting
admin
Делаем, так чтобы Самба для каждого виртуального сервера использовала свой конфигурационный файл:
include = /etc/samba/smb.conf.%L
В окне обозревателя
сети будет видны три сервера:
sales, accounting, admin.
Включение параметров preserve case и short preserve case заставляют сервер сохранять всю вводимую информацию с учетом регистра символов (в Windows регистр не имеет значения, во всех Unix — наоборот).
Раздел [homes] позволяет пользователям
подключаться к своим рабочим каталогам
без явного их описания. При запросе клиентом
своего каталога //sambaserver/sergej, машина ищет
соответствующее описание в файле и если
не находит его, то просматривает наличие
этого раздела. Если раздел существует,
то просматривается файл паролей для поиска
рабочего каталога пользователя, направившего
запрос, и при нахождении делает его доступным
для пользователя.
Типичное
описание данного
раздела выглядит
так:
- [homes] comment = Home Directories # комментарий, который виден в окне свойств сети
- browseable = no # определяет, выводить ли ресурс в списке просмотра.
- writable = yes # разрешает (no — запрещает) запись в домашнюю директорию
- create mode = 0750 # права доступа для вновь созданных файлов
- directory mode = 0775 # тоже, но только для каталогов
4.Сетевые ресурсы
После настройки параметров по умолчанию
вы можете создать сетевые ресурсы, доступ
к которым может получить определенный
пользователь или группа пользователей.
Создается такой ресурс из уже существующего
каталога, для этого в файле пишем:
[public] comment =
Public Stuff path = /home/samba public = yes
writable = no printable = no write list = administrator,
@sales
Path — указывает на каталог, в котором располагается ресурс; параметр public — указывает, может ли пользоваться ресурсом гость.
printable — может ли использоваться данный ресурс для печати.
write list — позволяет
определить пользователей, которым разрешена
запись в ресурс независимо от значения
writable (в данном примере это пользователь
administrator и группа sales). Возможно использование
и противоположного списка — read list.
Если есть
необходимость скрыть
Например: hide files = /*.log/??.tmp/. Такие ухищрения обходятся пользователям Windows всего лишь установкой режима «Показывать скрытые и системные файлы» Проводника. Для уверенного ограничения доступности (возможности удаления) файла (каталога) используйте параметры veto files и delete veto files.
5.CD приводы в Unix системах
CD-приводами дело обстоит несколько сложнее. Все дело в том, что в Unix-подобных системах понятие диска отсутствует как таковое, и для того чтобы получить доступ к нужному устройству, оно первоначально должно быть смонтировано в дерево каталогов (# mount -t iso9660 /dev/cdrom /mnt/cdrom), а после использования, чтобы не разрушить файловую систему, обязательно размонтировано (# umount /dev/cdrom), иначе устройство просто не отдаст диск. Если у вас на сервере запущен демон: autofs, то проблема решается просто. Для того чтобы устройство, которое не используется в течение некоторого времени, было автоматически размонтировано, установите нужное значение параметра timeout в файле /etc/auto.master.
Например:/mnt/auto/etc/ --
(подобная строка
уже там есть, ее нужно только
раскомментировать). Затем установите
параметры для
cdrom -fstype=auto,ro:/dev/
После всего
этого прописываем в /etc/smb.conf
следующие строки, чтобы сделать доступным
данный ресурс:
[cdrom]path = /mnt/cdromwritable
= no
Второй вариант состоит в использовании
директив preexec и postexec, которые указывают,
какие команды необходимо выполнить при
обращении к ресурсу и после отсоединения
от него (эти параметры можно указать для
любого ресурса и даже в секции global,
что открывает большие возможности).
[cdrom]path = /mnt/cdromread only = yesroot preexec = mount /mnt/cdrom— монтировать ресурс имеет право только
rootroot postexec = umount
/mnt/cdrom — естественно, эти точки
монтирования должны быть
описаны в файле: /etc/fstab,
иначе необходимо указать и остальные
данные.
Теперь при обращении к ресурсу автоматически
монтируется CD-ROM, а иногда и размонтируется.
Вся проблема в том, что решение о закрытии
ресурса должен принять сервер — клиенты,
как правило, не извещают об этом. Но обычно
это происходит оттого, что ресурсом одновременно
пользуются сразу несколько пользователей
или на одном компьютере оставлен открытый
файл на данном ресурсе (Device busy). Поэтому
CD-ROM автоматически не размонтируется,
единственный же приемлемый способ, чтобы
освободить ресурс — посмотреть с помощью
утилиты smbstatus номер процесса, использующего
данный ресурс, и убить его командой:
kill pid_number (или kill -s HUP pid_number).
6. Учетные записи пользователей
Установив необходимую конфигурацию,
теперь создадим учетные записи пользователей
(за исключением гостевого входа с минимальными
правами nobody). Для идентификации пользователей
SAMBA используется файл: /etc/samba/smbpasswd,
в котором содержатся имена и зашифрованные
пароли пользователей. Так как механизм
шифрования в сетях Windows-машин не совместим
со стандартными Unix-механизмами, для заполнения
файла паролей используется отдельная
утилита — smbpasswd.
# useradd -s /bin/false
-d /home/samba/sergej -g sales sergej# smbpasswd -a sergej# smbpasswd
-е sergej
В этом примере добавляется новый пользователь:
sergej, принадлежащий группе sales, с
фиктивной оболочкой (возможны варианты
/sbin/nologin, /dev/null) и домашним каталогом
/home/samba/sergej. Затем создаем пароль для
пользователя: sergej и последним шагом
включаем доступ пользователю, т.к. по
умолчанию он отключен. Интересный момент,
который может порой сбить с толку. Дело
в том, что при подключении к SAMBA-серверу
компьютера с Windows NT/2000 пользователю предлагается
ввести, как и положено, логин и пароль,
а если для доступа используется компьютер
с ОС Windows 9x/Me, то пользователю предлагается
ввести только пароль, а логин формируется
автоматически на основе регистрационного
имени.
Можно также сопоставить нескольких пользователей
Windows одному пользователю Linux/Unix. Для этого
создается файл сопоставления /etc/smbusers.map,
в котором отдельной строкой задается
каждое сопоставление:
пользователь_
Linux = user_win1 user_win2 user_winN
В секции [global]
добавьте строку username map = /etc/smbusers.map.
При этом пользователь Windows должен регистрироваться
с паролем того пользователя, с которым
он сопоставлен.
7. Сетевая печать
С помощью SAMBA можно организовать возможность сетевой печати с компьютеров под управлением Windows (если планируется отдельный сервер печати, то для этого бывает достаточно и машины на базе 486-процессора).
Для этого в секции [global] необходимо записать такие строки:
- printcap name = /etc/printcap — файл описания принтеров, подключенных к системе.
- load printers = yes — указывает на необходимость автоматического включения в список сетевых ресурсов
- printing = lprng —система печати (для Linux может еще использоваться bsd).
Далее каждый принтер
описывается как дисковый ресурс (с единственным
исключением); параметр printable = yes.
Например:
[printers] path = /var/spool/samba — указывает на каталог, в который помещаются задания на печать.
browseable = yes printable =
yes read only = yes
После создания файла протестируйте его с помощью утилиты: testparm. К сожалению, при помощи данной программы можно обнаружить лишь синтаксические ошибки, а не логические, поэтому нет никакой гарантии, что описанные в файле сервисы будут корректно работать (при тестировании будут выведены все установки, даже те, которые установлены по умолчанию, — поэтому внимательно просмотрите результат). Но если программа не ругается, можете надеяться, что при запуске файл будет загружен без проблем. Корректность работы принтеров, перечисленных в файле: /etc/printcap, с сервером SAMBA можно проверить с помощью утилиты testprns. Плюс не забывайте о .log-файлах: при возникновении проблем там иногда можно найти решение.
8. Конфигурирование Samba
Конфигурирование Samba
— довольно сложная процедура, но с дистрибутивом
поставляется инструмент администрирования
на основе Web, который называется: swat
(Samba Web Administration Tool).
Samba
Web Administration Tool
Swat — запускается в виде сервиса или с помощью сервера Apache и предназначен для редактирования файла smb.conf, а также для проверки состояния, запуска и остановки демонов Samba, смены паролей пользователей.
Чтобы он работал в виде сервиса, в файле:
/etc/services должна обязательно присутствовать
строка: swat 901/tcp, а в файле: /etc/inetd.conf
— swat stream tcp nowait.400 root /usr/local/samba/bin/swat swat
(это если используется сетевой демон:
inetd, как правило в старых дистрибутивах;
в современных дистрибутивах используется
более защищенный вариант: xinetd.
Для того чтобы использовать при этом
swat в каталоге: /etc/xinet.d, создайте
файл swat такого содержания:
service swat{ disable = no port =
901 socket_type = stream wait = no only_from
= 127.0.0.1 — это строка для запуска только
с локальной машины
user =
root server = /usr/sbin/swat log_on_failure
Теперь для
запуска Swat в окне браузера введите:http://localhost:901
Но
перед этим обязательно
создайте пользователя:
admin описанным
выше способом. И никогда
не запускайте сервис SAMBA
от имени: root.
После всех изменений в файле smb.conf
иногда потребуется перезапустить демон:
smb: /etc/rc.d/init.d/smb restart
Если после всех перечисленных действий так и не удалось организовать доступ к ресурсам SAMBA, то в дальнейшей настройке помогут такие утилиты как: ping (для проверки доступности узла в сети), nmblookup (для запроса имен NetBIOS), или на крайний случай tcpdump.
И не забывайте
про права доступа, ведь назначив
для пользователя каталог /gde/to/w/glubine,
вы предоставите ему возможность прочитать
(право на выполнение) и предыдущие каталоги.
9. Использование клиента Samba
Ведь нам (пользователям Linux) также хочется
работать и с сетевыми ресурсами Windows.
Для того чтобы узнать, какие ресурсы доступны,
необходимо ввести команду: /usr/bin/smbclient
-L host_name. Программа запросит пароль,
в ответ на что в большинстве случаев достаточно
нажать: Enter. Теперь, чтобы подключится
к требуемому ресурсу, введите имя компьютера
и требуемый ресурс.
Например:
/usr/bin/smbclient \\Alex\Sound—(здесь мы пробуем
подключиться к папке Sound на компьютере
Alex).
В результате, если команда
введена правильно и такой сетевой ресурс
существует, вы должны получить приглашение
на ввод пароля. Введите его или нажмите
Enter, если пароль не нужен для доступа.
В ответ вы получите приглашение samba-клиента:
smb: >. В дальнейшем работа происходит
путем набора команд, с помощью которых
можно произвести все необходимые операции
по работе с файлами (копирование, создание,
перемещение и т.д.). Для получения справки
введите: smb: > help. Этот режим несколько
неудобен, поэтому в большинстве случаев
используют модуль smbfs, входящий в
состав samba; но в старых дистрибутивах
ядро может быть собрано без поддержки
smbfs, и тогда его придется пересобрать.
Для того чтобы смонтировать необходимый
ресурс, наберите что-нибудь вроде этого:
mount -t smbfs -o username=user,password=123456,
Если не указать имя пользователя и пароль,
то система сама его у вас спросит. Не забывайте,
что, просмотрев файл ~HOME/.bash_history, можно
по командам, которые вы набирали, узнать
пароль. Еще одна тонкость: если программа
smbclient правильно отображает файлы с русскими
именами, то модуль smbfs иногда не обращает
на другую кодировку абсолютно никакого
внимания, даже если указать ее явно.
Если вы хотите, чтобы ресурс SMB монтировался
автоматически при запуске системы, добавьте
в файл /etc/fstab примерно такую строку:
//guest@alex/sound /mnt/alex/sound
smbfs rw, noauto 0 0.
В этом примере от имени
пользователя guest (если ресурс поддерживает
данного пользователя и если данный пользователь
имеет доступ только по паролю, то не волнуйтесь:
у вас его непременно спросят) сетевой
ресурс sound на компьютере alex монтируется
в папку /mnt/alex/sound с возможностью записи
в данный каталог. Кстати, клиент Samba отлично
видит скрытые сетевые ресурсы, т.е. те,
у которых сетевое имя заканчивается знаком
$.
Как видите, приходится работать с командной
строкой, которая у современного пользователя
вызывает тихий ужас. И здесь мир OpenSource
пошел ему навстречу — создано много утилит,
позволяющих работать с Samba-ресурсами
более привычным путем, нажимая кнопки
в графических оболочках. Самая популярная
программа, входящая в дистрибутив Mandrake
и производных от него, а также Debian
— gnomba. В любом случае ее можно найти
на большинстве серверов с ПО для Linux.

- Sba-анализ как метод оптимизации бизнеса
- SCRATCH – среда программирования для обучения школьников младших и средних классов
- SDH технологиясының архитектурасы
- Secrets of Apple Inc’s success
- Semantic and grammatical peculiarities of adverbial phraseological units
- Semantic of computers
- Seo в современном бизнесе
- Role of the state in becoming of mass media
- Rolls Royce
- Royal traditions in London
- Rozbor účetní závěrky společnosti HALADA spol. s.r.o
- Russian borrowings in english language
- S-12 автоматты телефон станциясын жобалау
- SaaS-технологии в мире и в России