======================================================================
#								     #
#                   Author: iNo  // k0dsweb gr0up		     #
#          Статья является собственностью команды KODSWEB            #
#     Любое растпространение без нашего ведома строго запрещено.     #
#			   -= 16.03.2003 =-			     #
#								     #
======================================================================
#								     #
#     Использование SAMBA для обеспечения совместного доступа        #
#	       к файлам при работе в смешанной сети.                 #
#							             #
======================================================================



INTRO...

Довольно часто встречаются ситуации когда в локалках есть компы как с
Виндами на борту, так и с NIX'ами. Всё бы хорошо, но далеко не каждый
пользователь NIX'ов знает, как передавать файлы с NIX'ов в винду, особо не
извращаясь. Незнающие люди начинают настраивать FTP, но это глупо, т.к. есть
специализированное средство. И имя ему SAMBA.

Как известно, в сетях под управением виндов используется протокол
SMB(Server Message Block). Который в свою очередь позволяет применять
сетевой интерфейс NetBIOS(Network Basic Input Output System), позволяющий
компьютерам сети совместно использовать ресурсы(принтеры и
диски). Изначально NIX'ы SMB не поддерживали. Но потом Эндрю Триджелл создал
версию SMB под UNIX, названную SAMBA.

Сервер SAMBA подключает NIX'ы к сети виндов таким образом, как если бы эти
системы были установлены на компьютерых с виндами. SAMB'ой можно
воспользоваться для обеспечения совместного доступа к файлам при работе в
смешанной сети. Кроме того, он позволяет получить доступ к файлам на
компьютере с виндами из NIX'ов. А файловая система SAMB'ы smbfs позволяет
монтировать разделяемый удалённый каталог SMB к своей файловой системе. Я
думаю, что теперь и ежу понятно, что вещь это архинужная, и лучше с ней
ознакомится.



HOWTO...

Итак. Приступим. Для работы SAMB'ы используется 2 демона(smbd,smbn),
клиента(smbclient) и нескольких вспомогательных
утилит(smbmount,smbumount,smbstatus,testparm). Демон smbd нужен для
предоставления доступа к файлам и принтерам, а также к другим системам,
поддерживающим SMB. Демон smbn обеспечивает преобразование имён
NetBIOS. Клиент позволяет обращаться к серверам SAMBA, он чем-то похож на
ftp-клиент. Утилиты smbmount и smbumount предназначенны соответственно для
монтирования и размонтирования удалённой файловой системы. smbstatus
показывает текущее состояние сервера, т.е. кто и куда подключился. Комманда
testparm служит для тестирования конфигурационного файла smb.conf. Для
хранения паролей сервер SAMBA поддерживает собственный файл паролей
smbpasswords.



SERVER...

Как я уже сказал, конфигурация сервера SAMBA производится в файле smb.conf,
который, как правило, находится в папке с самой SAMB'ой или в /etc. Файл
состоит из секций, которые начинаются с метки секций, заключённой в
квадратные скобки [mysection]. Сами параметры вводятся в формате
имя_параметра=значение. Комментарии вводится после точки с запятой.
Для конфигурации сервера SAMBA можно использовать SWAT, конфигуратор в
формате HTML, но я бы этого делать не рекомендовал. Ручками надёжнее.
Начнём конфигурировать наш smb.conf. Сначала идёт самая главная секция
[global]. В ней собраны самые основные и необходимые для работы сервера
настройки. Я буду описавать самые основные параметры. Про остальное
почитаешь сам.



---------------------------------------------------------------------------
[global]

workgroup = твоя_рабочая_группа_или_домен

server string = краткое_описание_твоего_сервера

hosts allow = 127.0.0.1 //необязательно, хосты ТОЛЬКО которым разрешён
доступ к твоему серверу

guest account = pcguest //гостевой аккаунт, тоже не обязательно(но если
всё-таки нужен, не забудь добавить его в /etc/passwd

log file = /var/log/samba/%m.log //где будет лежать лог

max log size = 1024 //максимальный размер лога

encrypt passwords = yes  //тоже не обязательно, но если нужно будет
шифровать пароли-врубай

smb passwd file = /etc/samba/smbpasswd  //файл паролей SAMBA
---------------------------------------------------------------------------

Затем идёт секция [homes], в которой определяются задаваемые по умолчанию
элементы управления, с помощью которых осуществляется доступ удалённых
пользователей к рабочему каталогу пользователя.

---------------------------------------------------------------------------
[homes]

comment = Home directories //комментарий к ресурсу
browseable = no //если оставить так, то нельзя будет просматривать ресурс в
диспетчере файлов(например в Explorer'е)

writable = no //запрет на редактирование
---------------------------------------------------------------------------
Далее идёт секция настройки принтеров [printers].

---------------------------------------------------------------------------
[printers]

comment = Printers //комментарий

path = /var/spool/samba //расположение каталога очереди SAMBA

browseable = no //секция будет скрыта для обозрения пользователем,но
останется доступной

public = yes //разрешение печати пользователю "guest account"

guest = ok //разрешение печати гостевым пользователям

writable = no //запрещение действий над файлами в очереди принтера

printable = yes //разрешение доступа к ресурсу
---------------------------------------------------------------------------
Ну и последняя секция Shares, в которой описываются все остальные
ресурсы. Она отличается тем, что саму метку shares указывать не надо.За
метку секции принемается имя ресурса. Таких ресурсов может быть сколько
угодно. И для каждого надо делать свою секцию. Я просто приведу пример с
комментарияим и тебе станет всё понятно.
---------------------------------------------------------------------------
[myshare]

comment = my stuff //комментарий

path = /usr/myshare //локальый путь к ресурсу

valid users = ino //допустимые пользователи

public = no //запрещение доступа гостю

writable = yes //права на запись

printable = yes //разрешение печати

creare mask = 0765 //а вот тут можно установить права как коммандой chmod
---------------------------------------------------------------------------
После настройки файла smb.conf нудно проверить файл на ошибкив
синтаксисе. Делается это коммандой testparm. Если всё прошло успешно,
запускаем сервер. 



CLIENT...

С сервером разобрались. Остался клиент. При запуске клиента без параметров
вылезает хелп. Ниже я опишу все параметры короткими комментариями.

-S smb.conf                 Указывает путь к файлу smb.conf
-B IP_адрес                 Указывает широковещательный IP-адрес
-O опции_сокета             Перечисляет опции сокета
-R порядок_определения_имён Определяет необходимость использования только
служб преобразования                             имён
-M хост                     Отсылает отсылку хосту сообщения winpopup(очень
полезная фишка)
-i область_доступа          Обеспечивает возможность использования данной
области доступа NetBIOS
-N                          Запрецает запрос пароля
-n имя_netbios              Использует данное название в качестве имени
NetBIOS
-d уровень_отладки          Задаёт уровень отладки
-P                          Устанавливает соединение со службой для работы
с принтером
-p порт                     Устанавливает соединение с определённым портом
-l log имя                  Задаёт имя для файлов log/debug
-h                          Обеспечивает печать справочного сообщения
-I ip_адрес                 Определяет ip-адрес для установки соединения
-E                          Производит запись сообщения в поток stderr
-U имя_пользователя         Задаёт имя пользователя для регистрации в
удалённой системе
-L хост                     Выдаёт удалённые ресурсы доступные на хосте
-t терминальный_код         Задаёт код терминала
ввода-вывода(sjis,jis7,jis8,junet,euc,hex)
-m макс)протокол            Устанавливает максимальный уровень детализации
сообщений протокола
-w рабочая группа           Задаёт имя рабочей группы
-T                     Задаёт командную строку операции
-D каталог                  Определяет начальный каталог
-c командная_строка         Выполняет команды, разделённые точкой с запятой
-b xmit/буфер_передачи      И изменяет значение буфера передачи-отправки(по
дефолту 65520)

Теперь я приведу пример работы smbclient'a.

smbclient -L 192.168.1.1 -U ino

В ответ на эту строчку, высветится список ресурсов компа с ip-аДресом
192.168.1.1

smbclient \\192.168.1.1\public -U ino

А вот так я подключусь к компу с ip-адресом 192.168.1.1 к папке public под
пользователем iNo. После подключения появится приглашение сервера,чем-то
схожее с ftp. Приведу описание основных команд:

cd [имя_каталога]           Изменяет каталог на сервере
del маска                   Удаляет из текущего каталога(на сервере) все
файлы с данной маской
dir маска                   Показывает список файлов на сервере
соответствующих маске 
exit                        Выход
get удалённое_имя_файла     Копирует файл с сервера 
[локальное_имя_файла]       в локальную систему
lcd [имя_каталога]          Изменяет каталог локальной системы
ls маска                    Выдаёт список файлов соответствующих маске
mask маска                  Задаёт маску
md имя_каталога             Создаёт новый каталог на сервере.
mget маска                  Копирует все файлы с указанной маской с
сервера
mkdir                       Аналогично md
mput                        Копирует все файлы с указанной маской из
локального каталога в                             удалённый 
print имя_файла             Печать указанного файла
rm маска                    Удаляет из текущего рабочего каталога сервера
всех файлов,                             соответствующих маске
rmdir имя_каталога          Удаляет указанный каталог с сервера
 
OUTTRO...

Ну вот собственно и всё.Всё самое основное для работы с SAMBA я
описал.Теперь ты спокойно можешь установить и настроить на компе сервер
SAMBA.GL!


Все отзывы/предложения принимаются по адресу: ino@kodsweb.ru
					      [k0dsweb] kodsweb.ru

. мото, мопед: снегоходы.