Средства Linux для работы с протоколом SMB. Сервер SAMBA

Конфигурационный файл SMB сервера. Создание простого файл сервера samba. Основные параметры разделяемых ресурсов сервера Samba. UNIX-клиенты для доступа к smb ресурсам. Подстановка переменных в файле smb.conf. WEB интерфейс управления SMB-сервером.

Рубрика Программирование, компьютеры и кибернетика
Вид лекция
Язык русский
Дата добавления 27.11.2013
Размер файла 38,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Занятие №22

Средства Linux для работы с протоколом SMB. Сервер SAMBA

  • Содержание занятия
  • 1. Сервер SAMBA
  • 2. Конфигурационный файл SMB сервера - «smb.conf»
  • 2.1 Общее описание
  • 2.2 Подстановка переменных в файле smb.conf
  • 2.3 server string
  • 2.4 security
  • 2.5 hosts allow
  • 2.6 printcap name
  • 2.7 load printers
  • 2.8 printing
  • 2.9 guest account
  • 2.10 log file
  • 2.11 max log size
  • 2.12 include
  • 2.13 socket options
  • 2.14 iocal master
  • 2.15 os level
  • 2.16 domain master
  • 2.17 preferred master
  • 2.18 wins support
  • 2.19 wins server
  • 2.20 wins proxy
  • 2.21 password server
  • 2.22 Параметры разделяемых ресурсов сервера Samba.
  • 3. ПРИМЕР: Создание простого файл сервера samba.
  • 4. UNIX-клиенты для доступа к smb ресурсам
  • 4.1 smbclient - UNIX-клиент для доступа к smb ресурсам на UNIX серверах
  • 4.2 Smbmount - UNIX-клиент для доступа к smb ресурсам на Windows серверах
  • 5. WEB интерфейс управления SMB-сервером - программа «swat».
  • Цель работы: знакомство с протоколом SMB, получение навыков администрирования сервера SAMBA

1. Сервер SAMBA

SMB - протокол Session Message Block (SMB), также называемый протокол NetBIOS или протокол LanManager

Протокол SMB используется Microsoft Windows 3.11, NT и 95 и XP для организации доступа к дискам и принтерам. Используя набор утилит Samba от Andrew Tridgell, UNIX-машины (включая Linux) могут организовывать доступ к дискам и принтерам Windows-машинам.

2. Конфигурационный файл SMB сервера - «smb.conf»

2.1 Общее описание

Для работы сервиса SMB необходим конфигурационный файл smb.conf. Этот файл определяет, к каким системным ресурсам предоставляется доступ для внешнего мира, и какие ограничения существуют на использование этих ресурсов.

Конфигурационный файл имеет текстовый формат и разбит на разделы. Каждый раздел начинается с заголовка раздела, такого как [global], [homes] и т.п. Названия всех разделов в файле smb.conf заключены в прямоугольные скобки [ ].

Раздел [global] определяет переменные, которые Samba будет использовать для определения доступа ко всем ресурсам. Все остальные секции описывают отдельный ресурс сервера.

Специальный раздел [homes] позволяет удаленным пользователям иметь доступ к своим домашним директориям. Так что, если пользователи Windows попытаются подключиться к этому разделу со своих Windows-машин, то они будут подключены к своим персональным домашним директориям.

Отдельные записи в разделах указываются в соответствии с формулой name = значение.

Далее приводится описание всех переменных, значения которых можно установить в конфигурационном файле.

2.2 Подстановка переменных в файле smb.conf

Перед описанием файла smb.conf в данном пункте описывается использование подстановки переменных. Она может использоваться во многих строках файла smb.conf. Перед тем как обработать команду, Samba выполняет подстановки.

Ниже приведен список всех возможных подстановочных переменных:

- %S Имя текущей службы,

- %Р Корневой каталог текущей службы,

- %u Пользователь текущей службы,

- %g Основная группа %u,

- %U Имя пользователя для сеанса (может отличаться от имени, запрошенного клиентом),

- %G Основная группа %U,

- %Н Домашний каталог пользователя,

- %v Версия Samba,

- %h Имя хоста, на котором работает Samba,

- %m NetBIOS-имя компьютера-клиента,

- %L NetBIOS-имя сервера. Эта переменная может оказаться полезной в том случае, если вы на одном Samba-сервере запускаете несколько NetBIOS-серверов;

- %М Имя хоста для компьютера-клиента;

- %R Выбранный после установления соединения уровень протокола; - %d Номер текущего серверного процесса;

- %а Операционная система клиента (значение может быть неверным).

В настоящее время распознаются такие системы, как Samba, Windows for Workgroups, Windows NT и Windows 95. Если система неизвестна для Samba, значением переменной является UNKNOWN.

- %I IP-адрес клиентской машины;

- %T Текущие дата и время.

2.3 server string

Описание машины, которое будет показано в браузере сети.

server string = My super Samba server

2.4 security

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

Существуют пять типов значений параметра: share, user, server, domain, ads: (Режимы аутентификации сервера Samba):

1. share -- определение доступа на уровне ресурса. Используется только пароль.

2. user - для доступа к ресурсу необходимо указать имя пользователя и его пароль. На сервере Samba необходимо создать специальный файл, в котором будут описываться пользователи и их пароли.

3. server - запросы на аутентификацию будут пересылаться на другой сервер. Это может быть сервер NTAVin200x/Samba.

4. domain -запросы на аутентификацию будут пересылаться контроллеру домена.

5. ads - запросы на аутентификацию будут пересылаться контроллеру домена Win200x в native режиме. Т.е. сервер Samba будет виден как машина Win200x.

Пример:

security = share

2.5 hosts allow

Определяет машины или сети, из которых разрешено обращаться к серверу Samba.

Если параметр определен для конкретного разделяемого ресурса, то он определяет ограничения доступа к этому ресурсу.

Пример:

hosts allow § 192.168.1.192.168.2.0./24 192.168.3.0/255.255.255.0 127.0.0.1

2.6 printcap name

Определяет файл, в котором описаны принтеры системы.

Пример:

printcap name § /etc/printcap

2.7 load printers

Параметр необходим для автоматической загрузки списка принтеров в системе.

Если этот параметр не определен, каждый

принтер прийдется определять индивидуально.

Пример:

load printers = yes

2.8 printing

Параметр определяет используемую систему печати.

Пример:

printing = cups

2.9 guest account

Определяет, на какого пользователя UNIX будут отображаться пользователи, не прошедшие аутентификацию.

Пример:

guest account = nobody

2.10 log file

Определяет место расположения логфайла (файлов).

В именах файлов можно использовать символы подстановки %т (машина) %и (пользователь) и другие. В этом случае будет несколько файлов для каждой машины или пользователя.

Пример:

log file й /usr/IocaI/samba/var/log.%m

2.11 max log size

Определяет максимальный размер логфайла.

Число - это размер файла в килобайтах.

Пример:

max log size = 50

2.12 include

Определяет дополнительные конфигурационные файлы, подключаемые к основному файлу smb.conf.

При указании подключаемого файла, в его имени можно использовать специальные символы.

Пример:

include = /usr/local/samba/lib/smb.conf.%m

2.13 socket options

Определяет параметры сетевого соединения.

Параметр TCP NODELAY должен быть указан всегда.

Для изменения размера буфера (настройка производительности) можно использовать параметры: SOJRCVBUF и SO_SNDBUF

Пример:

socket options | TCPJVODELAY

interfaces

Определяет интерфейсы, на которых будет слушать запросы по сети сервер Samba.

Пример:

interfaces 1192.168.12.2/24 192.168.13.2/24

2.14 iocal master

Определяет, будет ли сервер Samba принимать участие в "выборах" мастер браузера сети.

Пример:

local master = yes

2.15 os level

Определяет версию операционной системы.

Чем выше номер, тем больше шансов у сервера стать мастер браузером.

Пример:

os level Ш 64

2.16 domain master

Если указать этот параметр, сервер Samba будет выступать в роли контроллера домена.

Для организации полноценного домена необходимо определить дополнительные параметры и раздаваемые ресурсы.

Пример:

domain master = yes

2.17 preferred master

Если указать этот параметр, при запуске сервера Samba будут инициированы новые выборы мастер браузера в сети.

Пример:

preferred master щ yes

2.18 wins support

Параметр определяет, будет ли сервер Samaba выступать в роли WINS сервера. Так же, как и в Windows, для преобразования NetBIOS имен машин в IP адреса, необходимо создать файл

lmhosts.

Пример:

wins support = yes

2.19 wins server

Определяет IP адрес сервера WINS, услугами которого будет пользоваться сервер Samba.

Пример:

wins server = 122.12.12.150

2.20 wins proxy

Если этот параметр определен, сервер Samba будет выступать в роли WINS прокси.

Пример:

wins proxy = yes

2.21 password server

При помощи этого параметра определяется сервер или контроллер домена, к которому будет обращаться сервер Samba по вопросам аутентификации.

Пример:

password server = WinPDC WinBDC

password server Щ *

2.22 Параметры разделяемых ресурсов сервера Samba.

Каждый разделяемый ресурс описывается в отдельной секции.

Имя ресурса соответствует названию секции.

Параметры раздаваемых Я ресурсов сервера Samba.

(homes)

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

comment

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

Пример:

comment = Net share disk

browseable

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

Пример:

browseable = по | че-%

writable

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

Пример:

writable = yes

valid users

Параметр определяет список пользователей или групп пользователей, которым разрешен доступ к указанному ресурсу.

Пример:

valid users = piter (abusers

Параметр указывает, что определяется ресурс раздаваемого по сети принтера.

Пример:

printable Щ yes

guest ok

public

Параметр определяет, возможен ли доступ к ресурсу пользователям, не прошедшим аутентификацию.

guest ok = yes public =yes

write list

Параметр определяет, список пользователей и групп пользователей, которым разрешен доступ на запись.

Пример:

write list Щ piter @users

path

Если параметр находится в описании раздаваемой по сети директории, он определяет директорию, которая будет доступна клиентам.

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

Пример:

path I /home/samba с*«и-п«д ! * - I - * f;

3. ПРИМЕР: Создание простого файл сервера samba

Шаг 1 Создание папки (дисков) для использования в качестве общих ресурсов

mkdir /home/samba

изменяем права на данную папку:

chmod 777

chown nobody:nobody /home/samba

и создаем первый файл в нашем ресурсе:

touch /home/samba/MyTestFile.txt

Шаг 2

Создаем раздел основных настроек в конфигурационном файле samba.conf

[global]

workgroup = UNIX

server string = Samba Server C#

guest account = nobody

security = share

local master = yes

os level = 64

preferred master = yes

[public]

comment = Public Stuff

path = /home/samba

public = yes

writable = yes

printable = notestparm

Шаг 3

запускаем сервер

nmbd -D

smbd -D

(ключ -запуск в режиме демона)

Либо следующим способом: smbd restart (можно вначале smbd stop а затем уже smbd start)

Проверяем:

ps -xa

В списке процессов обязательно должны присутствовать обе программы!

Шаг 4 Пробуем подключиться к нашему ресурсу.

4. UNIX-клиенты для доступа к smb ресурсам

4.1 smbclient - UNIX-клиент для доступа к smb ресурсам на UNIX серверах

Ftp подобный клиент для доступа к smb ресурсам на серверах.

При помощи программы возможна печать на сетевых принтерах.

Подключение к ресурсу при помощи smbclient. |

smbclient -L localhost

на приглашение ввести пароль нажмите Enter.

smbclient //1Р_соседней__машины/public

на приглашение ввести пароль нажмите Enter.

help

Is

Quit

сервер ресурс интерфейс samba

4.2 Smbmount - UNIX-клиент для доступа к smb ресурсам на Windows серверах

Программа предназначена для подключения сетевых дисков, раздаваемых Windows серверами, к файловой системе Linux.

Программа может работать только в системах, поддерживающих файловую систему smbfs.

Для сборки программы, при запуске configure необходимо добавить опцию -- with-smbmount.

Пример: Подключение сетевого ресурса

mkdir /mnt/winmount

smbmount //IP машины/public /mnt/winmount

на приглашение ввести пароль нажмите Enter.

Is /mnt/winmount

touch /mnt/winmount/GuestFile

Is -1 /home/samba

mount

umount /mnt/winmount

5. WEB интерфейс управления SMB-сервером - программа «swat»

С сервером Samba поставляется программа, организующая WEB интерфейс управления сервером - swat.

Программа swat собирается из исходных кодов во время сборки сервера Samba.

Для включения swat, необходимо описать его запуск через сетевой суперсервер inetd или xinetd.

Настройка WEB интерфейса.

swat. ДВ|Н||

mcedit /etc/inetd.conf

найдите строку начинающуюся со

#swat

уберите символ комментария - #

в строке замените /usr/sbin/swat на /opt/samba/sbin/swat

сохраните файл.

killall -I inetd

nets-bat: -ni \ grep 901

Настройка WEB интерфейса. swat.

Запустите любой WEB браузер.

Введите URL - http://localhost:901/

На приглашение ввести login, введите root

На приглашение ввести пароль, введите пароль пользователя root.

На странице выберите ссылку globals.

Нажмите кнопку Advanced

установите значения параметров:

dos charset = CP866

unix charset = KOI8-R

Настройка WEB интерфейса, swat.

Нажмите копку Commit Changes.

Выберите раздел status.

сначала перезапустите сервис nmbd.

Дождитесь пока страница обновится.

перезапустите сервис smbd.

Подключитесь к ресурсу с любой Windows машины и создайте файл или директорию с русскими буквами в имени.

Посмотрите содержимое директории /home/samba

6. SMB HOWTO

6.1 Введение

Это SMB HOWTO. Этот документ описывает как использовать в Linux протокол Session Message Block (SMB), также называемый протокол NetBIOS или протокол LanManager.

Этот документ сопровождается David Wood ( dwood@plugged.net.au). Добавления, изменения или исправления могут быть посланы ему для включения в следующий выпуск.

Протокол SMB используется Microsoft Windows 3.11, NT и 95 для организации доступа к дискам и принтерам. Используя набор утилит Samba от Andrew Tridgell, UNIX-машины (включая Linux) могут организовывать доступ к дискам и принтерам Windows-машинам.

Четыре вещи, которые можно делать с помощью Samba:

1. давать доступ к дискам linux Windows-машинам.

2. организовывать доступ к дискам Windows для машин под linux.

3. давать доступ к принтерам linux для Windows-машин.

4. организовывать доступ к принтерам Windows для linux-систем.

Обо всем этом рассказывается в этом документе.

Отказ от ответственности: Процедуры и программы либо работают для автора либо было сообщено, что они работают для людей, которые разработали их. Различные конфигурации могут не работать с информацией данной здесь. Если вы столкнулись с такой ситуацией, вы можете послать сообщение автору документа с пожеланиями для его улучшения, но автор ничего не гарантирует. Что вы ожидали? Автор, кроме всего прочего, консультант...

6.2 Дополнительная информация

Этот документ делает попытку объяснить как настроить основные файловые и принтерные сервисы SMB на linux-машине. Samba является очень сложным и законченным пакетом. Незачем пытаться дублировать здесь всю документацию на Samba.

Для дополнительной информации смотрите следующие документы:

· Документация на Samba, доступную как часть дистрибутива Samba Дистрибутив доступен по адресу: ftp://nimbus.anu.edu.au/pub/tridge/samba/

· The linux Printing HOWTO.

· The Print2Win Mini-HOWTO.

6.3 Установка

Последние версии исходных текстов Samba доступны с: ftp://nimbus.anu.edu.au/pub/tridge/samba/

Однако, если у вас установлен дистрибутив RedHat, у вас имеется возможность установить ее как пакет RedHat. Некоторые другие дистрибутивы также включают исполняемые файлы Samba.

Следующие два демона необходимы для пакета Samba. Они обычно устанавливаются в /usr/sbin и запускаются либо при загрузке из системных скриптов либо из inetd. Примеры скриптов даны в разделе Запуск демонов.

smbd (Демон SMB)

nmbd (Обеспечивает поддержку сервера имен NetBIOS для клиентов)

Обычно следующие двоичные файлы Samba устанавливаются в директорию /usr/bin, хотя их расположение опционально.

smbclient (Клиент SMB для UNIX-машин)

smbprint (скрипт для печати на принтер на SMB-машине)

smbprint.sysv (такое как выше, но для машин с SVR4 UNIX)

smbstatus (Перечисляет текущие SMB-соединения для локальной машины)

smbrun ('glue' скрипт для способствования запуска приложений

на SMB-машине)

Дополнительно с этим документом включен скрипт, названный 'print', который служит как полезная надстройка над скриптом script.

Пакет Samba очень прост в установке. Просто получите исходные тексты по адресу, указанному выше, и прочитайте файл README в дистрибутиве. Также в дистрибутиве есть файл называемый docs/INSTALL.txt, который дает простой набор пошаговых инструкций.

Последующая установка, поместит демоны в /usr/sbin и двоичные файлы в /usr/bin. Установите справочные страницы в /usr/local/man.

При установке пакета Samba, вы должны указать в Makefile расположение файла конфигурации, smb.conf. Обычно это /etc, но вы можете поместить его куда угодно. Для этих указаний, мы будем предполагать, что вы указали расположение файла конфигурации как /etc/smb.conf, расположение файла лога как log file = /var/log/samba-log.%m и блокировочной директории как lock directory = /var/lock/samba.

Установите файл конфигурации smb.conf. Перейдите в директорию, где была скомпилирована Samba. Посмотрите в поддиректории examples/simple и прочитайте файл README. Скопируйте файл smb.conf найденный в этой директории в директорию /etc. БУДЬТЕ ОСТОРОЖНЫ! Если у вас дистрибутив linux с уже установленной Samba, у вас уже может быть файл конфигурации Samba в /etc. Вероятно вы начать с каким-то из них.

Если вы не хотите установить файл конфигурации в директорию /etc, поместите его куда вы хотите, а затем поместите символическую ссылку в /etc:

ln -s /path/to/smb.conf /etc/smb.conf

6.4 Запуск демонов

Есть два демона SMB /usr/sbin/smbd и /usr/sbin/nmbd.

Вы можете запустить демоны Samba из inetd или как автономные процессы. Если вы настраиваете постоянный файловый сервер, тогда они должны запускаться из inetd, так что они будут перезапущены если они закончат работу. Если вы хотите использовать средства SMB время от времени или для помощи в системном администрировании, вы можете запустить их в скрипте /etc/rc.d/init.d или даже вручную, когда вам необходимо.

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

# SAMBA NetBIOS services (for PC file and print sharing)

netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd

netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd

Затем перезапустите демон inetd запуском команды:

kill -HUP 1

Для запуска демонов из системных стартовых скриптов, поместите следующий скрипт в файл называемый /etc/rc.d/init.d/smb и создайте на него символические ссылки с именами указанными в комментариях:

#!/bin/sh

#

# /etc/rc.d/init.d/smb - запускает и останавливает сервисы SMB

#

# Следующие файлы должны быть символическими ссылками на этот файл:

# symlinks:

# /etc/rc.d/rc1.d/K35smb (Убивает сервисы SMB при выключении

# /etc/rc.d/rc3.d/S91smb (Запускает сервисы SMB в многопользовательском режиме)

# /etc/rc.d/rc6.d/K35smb (Убивает сервисы SMB при перезагрузке)

#

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0

# See how we were called.

case "$1" in

start)

echo -n "Starting SMB services: "

daemon smbd -D

daemon nmbd -D

echo

touch /var/lock/subsys/smb

;;

stop)

echo -n "Shutting down SMB services: "

killproc smbd

killproc nmbd

rm -f /var/lock/subsys/smb

echo ""

;;

*)

echo "Usage: smb {start|stop}"

exit 1

esac

6.5 Основная настройка (/etc/smb.conf)

Настройка Samba в linux (или других UNIX-машинах) контролируется единственным файлом, /etc/smb.conf. Этот файл определяет к каким системным ресурсам вы хотите дать доступ для внешнего мира и какие ограничения вы хотите дать на их использование.

Так как следующие разделы посвящены организации доступа в дискам и принтерам Linux для Windows-машин, то файл smb.conf, показанный в этом разделе является примером, исключительно в целях введения.

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

Каждый раздел файла начинается с заголовка раздела, такого как [global], [homes], [printers], и т.п..

Секция [global] определяет некоторые переменные, которые Samba будет использовать для определения доступа ко всем ресурсам.

Раздел [homes] позволяет удаленным пользователям иметь доступ к своим (и только своим) домашним директориям на локальной linux-машине. Так что, если пользователи Windows попытаются подключиться к этому разделу со своих Windows-машин, то они будут подключены к своим персональным домашним директориям. Заметим, что для того чтобы сделать это, они должны быть зарегестрированы на linux-машине.

Простой файл smb.conf ниже позволяет удаленным пользователям иметь доступ к их домашним директориям на локальной машине и писать во временную директорию. Для того чтобы пользователи Windows могли увидеть эти ресурсы машина с linux должна быть в локальной сети. Затем пользователи просто подключают сетевые диски с помощью Windows File Manager или Windows Explorer.

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

; /etc/smb.conf

;

; Убедитесь и перезапустите сервер после внесения изменений в этот

; файл, например:

; /etc/rc.d/init.d/smb stop

; /etc/rc.d/init.d/smb start

[global]

; Раскомментировать это, если вы хотите дать доступ пользователю "гость"

; guest account = nobody

log file = /var/log/samba-log.%m

lock directory = /var/lock/samba

share modes = yes

[homes]

comment = Home Directories

browseable = no

read only = no

create mode = 0750

[tmp]

comment = Temporary file space

path = /tmp

read only = no

public = yes

6.6 Организация доступа к дискам Linux для машин под Windows

Как показано в простом файле smb.conf выше, разделение дисков linux для пользователей Windows является легким. Однако, подобно всему с Samba вы можете контролировать это в большой степени. Здесь есть несколько примеров:

Чтобы организовать доступ для всех, создайте копию раздела [tmp], приведенного выше, добавлением чего-то подобного в smb.conf:

[public]

comment = Public Stuff

path = /home/public

public = yes

writable = yes

printable = yes

Чтобы сделать эту директорию доступной для чтения всеми, но разрешить писать в нее только людям из группы staff, измените запись подобно приведенному примеру:

[public]

comment = Public Stuff

path = /home/public

public = yes

writable = yes

printable = no

write list = @staff

Для описания других приемов для изменения доступа к дискам, смотрите документацию на Samba и справочные страницы.

6.7 Доступ к дискам Windows для машин под Linux

Программа клиента SMB для UNIX-машин включена в дистрибутив Samba. Она обеспечивает ftp-подобный интерфейс командной строки. Вы можете использовать эту утилиту для переноса файлов между Windows 'сервером' и linux клиентом.

Для того, чтобы увидеть какие ресурсы доступны на данной машине, выполните команду:

/usr/sbin/smbclient -L host

где 'host' это имя машины, которую вы хотите видеть. Эта команда вернет список имен 'сервисов' - т.е. имен дисков или принтеров к которым может быть доступ. До тех пор пока SMB сервер не настроен без секретности, он будет запрашивать у вас пароль. Дайте ему пароль для пользователя 'гость (guest)' или ваш персональный пароль на этой машине.

Напрмер:

smbclient -L zimmerman

Вывод этой команды должен выглядеть подобно этому:

Server time is Sat Aug 10 15:58:27 1996

Timezone is UTC+10.0

Password:

Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51]

Server=[ZIMMERMAN] User=[] Workgroup=[WORKGROUP] Domain=[]

Sharename Type Comment

--------- ---- -------

ADMIN$ Disk Remote Admin

public Disk Public

C$ Disk Default share

IPC$ IPC Remote IPC

OReilly Printer OReilly

print$ Disk Printer Drivers

This machine has a browse list:

Server Comment

--------- -------

HOPPER Samba 1.9.15p8

KERNIGAN Samba 1.9.15p8

LOVELACE Samba 1.9.15p8

RITCHIE Samba 1.9.15p8

ZIMMERMAN

Browse list показывает другие SMB сервера в сети с доступными ресурсами.

Для использования клиента, выполните:

/usr/sbin/smbclient service <password>

где 'service' -- имя машины и сервиса. Например, если вы пытаетесь обратиться к директории, которая доступна под именем 'public' на машине названной 'zimmerman', то имя сервиса должно звучать как \\zimmerman\public. Однако вследствии ограничений оболочки, вам необходимо спрятать обратный слэш, так что в конце это будет выглядеть подобно этому:

/usr/sbin/smbclient \\\\zimmerman\\public mypasswd

где 'mypasswd' -- символьная строка вашего пароля.

Вы получите приглашение smbclient:

Server time is Sat Aug 10 15:58:44 1996

Timezone is UTC+10.0

Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51]

smb: \>

Напечатайте 'h' чтобы получить помощь об использовании smbclient:

smb: \> h

ls dir lcd cd pwd

get mget put mput rename

more mask del rm mkdir

md rmdir rd prompt recurse

translate lowercase print printmode queue

cancel stat quit q exit

newer archive tar blocksize tarmode

setmode help ? !

smb: \>

Если вы можете использовать ftp, вам не будут нужны справочные страницы о smbclient

6.8 Доступ к принтеру Linux для Windows-машин

Для разделения принтера linux с Windows машинами, вам необходимо убедиться, что принтер работает под Linux. Если вы можете печатать под Linux, установка доступа к нему очень проста.

Смотрите Printing HOWTO для информации о настройке печать.

Поскольку автор использует принтер, подключенный к машине с Windows NT, этот раздел не должен рассматриваться как окончательный, а только как рекомендация. Кто угодно посылайте мне информацию об организации доступа на адрес: dwood@plugged.net.au, так что этот раздел может быть дополнен.

Добавте настройку принтера в ваш файл smb.conf:

[global]

printing = bsd

printcap name = /etc/printcap

load printers = yes

log file = /var/log/samba-log.%m

lock directory = /var/lock/samba

[printers]

comment = All Printers

security = server

path = /var/spool/lpd/lp

browseable = no

printable = yes

public = yes

writable = no

create mode = 0700

[ljet]

security = server

path = /var/spool/lpd/lp

printer name = lp

writable = yes

public = yes

printable = yes

print command = lpr -r -h -P %p %s

Убедитесь, что путь к принтеру (в этом случае для [ljet]) соответствует директории спула в /etc/printcap!

ЗАМЕТКА: Существуют некоторые проблемы с доступом к доступным принтерам на UNIX-машинах для машин с Windows NT используя Samba. Одна проблема в том, что NT неправильно видит доступный принтер. Для исправления этого, смотрите заметку в поставке Samba в файле docs/WinNT.txt. Другая проблема связана с проблемой пароля. Смотрите комментарий в том же самом файле.

6.9 Доступ к принтеру Windows с машин под Linux

Для доступа к принтеру на Windows машине, вы должны сделать следующее:

a) ВЫ должны иметь правильные записи в файле /etc/printcap и они должны соответствовать локальной структуре директорий (для директории спула, и т.п.)

b) У вас должен быть скрипт /usr/bin/smbprint. Он идет вместе с исходными текстами Samba, но не со всеми двоичными дистрибутивами Samba. Его немного модифицированная копия обсуждается ниже.

c) Если вы хотите преобразовывать ASCII файлы в Postscript, вы должны иметь nenscript, или его эквивалент. nenscript -- это конвертор Postscript, он обычно устанавливается в директорию /usr/bin.

d) Вы можете хотеть сделать печать через Samba более легкой с помощью программы-надстройки. Простой скрипт на perl, который обрабатывает ASCII, Postscript или преобразованный Postscript дан ниже.

Запись в /etc/printcap ниже приведена для принтера HP 5MP на сервере Windows NT. Записи следующие:

cm - комментарий

lp - имя устройства, открываемого для вывода

sd - директория спула принтера (на локальной машине)

af - файл учета пользования принтером

mx - максимальный размер файла (ноль -- без ограничений)

if - имя входного фильтра (скрипта)

Для более детальной информации смотрите Printing HOWTO или справочные страницы по printcap.

# /etc/printcap

#

# //zimmerman/oreilly via smbprint

#

lp:\

:cm=HP 5MP Postscript OReilly on zimmerman:\

:lp=/dev/lp1:\

:sd=/var/spool/lpd/lp:\

:af=/var/spool/lpd/lp/acct:\

:mx#0:\

:if=/usr/bin/smbprint:

Убедитесь, что директории спула и учета пользования существуют и имеют право на запись. Убедитесь, что строка 'if' содержит правильный путь к скрипту smbprint (дан ниже) и будьте уверены, что указывается на правильное устройство (специальный файл /dev).

Далее идет сам скрипт smbprint. Он обычно находится в директории /usr/bin и относящийся к Andrew Tridgell, человеку кто создал Samba, насколько я знаю. Этот скрипт идет с дистрибутивом исходного кода Samba, но отсутствует в некоторых бинарных дистрибутивах, так что я воссоздал его здесь.

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

#!/bin/sh -x

# Этот скрипт является входным фильтром для основанной на printcap

# печати на unix-машинах. Он использует программу smbclient для

# печати файла на указанный smb-сервер и сервис.

# Например вы можете иметь запись в printcap подобную этой

#

# smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint

#

# которая создает unix-принтер названный "smb", который будет

# печатать с помощью этого скрипта. Вам необходимо создать директорию

# спула /usr/spool/smb с соответствующими правами и владельцем

# Установите здесь сервер и сервис на который вы хотите печатать. В

# этом примере я имею PC с WfWg PC, названную "lapland", которая

# имеет экспортируемый принтер, называемый "printer" без пароля

#

# Далее скрипт был изменен hamiltom@ecnz.co.nz (Michael Hamilton)

# так что сервер, сервис и пароль могут быть считаны из файла

# /usr/var/spool/lpd/PRINTNAME/.config

#

# Для того чтобы это работало запись в /etc/printcap должна

# включать файл учета использования (af=...):

#

# cdcolour:\

# :cm=CD IBM Colorjet on 6th:\

# :sd=/var/spool/lpd/cdcolour:\

# :af=/var/spool/lpd/cdcolour/acct:\

# :if=/usr/local/etc/smbprint:\

# :mx=0:\

# :lp=/dev/null:

#

# Файл /usr/var/spool/lpd/PRINTNAME/.config должен содержать

# server=PC_SERVER

# service=PR_SHARENAME

# password="password"

#

# Например,

# server=PAULS_PC

# service=CJET_371

# password=""

#

# Debugging log file, change to /dev/null if you like.

#

logfile=/tmp/smb-print.log

# logfile=/dev/null

#

# The last parameter to the filter is the accounting file name.

#

spool_dir=/var/spool/lpd/lp

config_file=$spool_dir/.config

# Should read the following variables set in the config file:

# server

# service

# password

# user

eval `cat $config_file`

#

# Some debugging help, change the >> to > if you want to same space.

#

echo "server $server, service $service" >> $logfile

(

# NOTE You may wish to add the line `echo translate' if you want automatic

# CR/LF translation when printing.

echo translate

echo "print -"

cat

) | /usr/bin/smbclient "\\\\$server\\$service" $password -U $user -N -P >> $logfile

Большинство дистрибутивов linux идет с программой nenscript для преобразования ASCII документов в Postscript. Следующий скрипт на perl делает жизнь легче, обеспечивая простой интерфейс для печати в liinux через smbprint.

Использование: print [-a|c|p] <filename>

-a печатает <filename> как ASCII

-c печатает <filename> отформатированный как исходный код

-p печатает <filename> как Postscript

Если опции не заданы, программа попробует определить

тип файла и печатать соответственно

Используя smbprint для печати ASCII файлов, скрипт следит за длинными строками. Если возможно этот скрипт разрывает длинную строку на пробеле (вместо разрыва в середине слова).

Форматирование исходного кода выполняется с помощью nenscript. Он берет ASCII-файл и форматирует его в 2 колонки с с заголовком (дата, имя файла и т.п.). Он также нумерует строки. Используя этот скрипт как пример другие типы форматирования могут быть сделаны.

Postscript-документы уже правильно отформатированы, так что они печатаются сразу.

#!/usr/bin/perl

# Скрипт: print

# Авторы: Brad Marshall, David Wood

# Plugged In Communications

# Дата: 960808

#

# Используется для печати на сервис oreilly, который расположен на

# сервере zimmerman

# Назначение: Берет файлы разных типов как аргумент и обрабатывает

# их соответственно для передачи на скрипт печать Samba.

#

# В настоящее время поддерживаются типы файлов:

#

# ASCII - Если длина строки длинее чем $line_length символов, то

# переносит строку на пробеле

# Postscript - Берет без обработки

# Code - Форматирует в Postscript (используя nenscript), чтобы

# отображать правильно (альбомный формат, фонт и т.п.)

#

# Установить максимальную длину строки ASCII текста

$line_length = 76;

# Установить путь к скрипту печати Samba

$print_prog = "/usr/bin/smbprint";

# Установить путь и имя nenscript (конвертера ASCII-->Postscript)

$nenscript = "/usr/bin/nenscript";

unless ( -f $print_prog ) {

die "Can't find $print_prog!";

}

unless ( -f $nenscript ) {

die "Can't find $nenscript!";

}

&ParseCmdLine(@ARGV);

# DBG

print "filetype is $filetype\n";

if ($filetype eq "ASCII") {

&wrap($line_length);

} elsif ($filetype eq "code") {

&codeformat;

} elsif ($filetype eq "ps") {

&createarray;

} else {

print "Sorry..no known file type.\n";

exit 0;

}

# Pipe the array to smbprint

open(PRINTER, "|$print_prog") || die "Can't open $print_prog: $!\n";

foreach $line (@newlines) {

print PRINTER $line;

}

# Send an extra linefeed in case a file has an incomplete last line.

print PRINTER "\n";

close(PRINTER);

print "Completed\n";

exit 0;

# --------------------------------------------------- #

# Everything below here is a subroutine #

# --------------------------------------------------- #

sub ParseCmdLine {

# Parses the command line, finding out what file type the file is

# Gets $arg and $file to be the arguments (if the exists)

# and the filename

if ($#_ < 0) {

&usage;

}

# DBG

# foreach $element (@_) {

# print "*$element* \n";

# }

$arg = shift(@_);

if ($arg =~ /\-./) {

$cmd = $arg;

# DBG

# print "\$cmd found.\n";

$file = shift(@_);

} else {

$file = $arg;

}

# Defining the file type

unless ($cmd) {

# We have no arguments

if ($file =~ /\.ps$/) {

$filetype = "ps";

} elsif ($file =~ /\.java$|\.c$|\.h$|\.pl$|\.sh$|\.csh$|\.m4$|\.inc$|\.html$|\.htm$/) {

$filetype = "code";

} else {

$filetype = "ASCII";

}

# Process $file for what type is it and return $filetype

} else {

# We have what type it is in $arg

if ($cmd =~ /^-p$/) {

$filetype = "ps";

} elsif ($cmd =~ /^-c$/) {

$filetype = "code";

} elsif ($cmd =~ /^-a$/) {

$filetype = "ASCII"

}

}

}

sub usage {

print "

Использование: print [-a|c|p] <filename>

-a печатает <filename> как ASCII

-c печатает <filename> отформатированный как исходный код

-p печатает <filename> как Postscript

Если опции не заданы, программа попробует определить

тип файла и печатать соответственно\n

";

exit(0);

}

sub wrap {

# Create an array of file lines, where each line is < the

# number of characters specified, and wrapped only on whitespace

# Get the number of characters to limit the line to.

$limit = pop(@_);

# DBG

#print "Entering subroutine wrap\n";

#print "The line length limit is $limit\n";

# Read in the file, parse and put into an array.

open(FILE, "<$file") || die "Can't open $file: $!\n";

while(<FILE>) {

$line = $_;

# DBG

#print "The line is:\n$line\n";

# Wrap the line if it is over the limit.

while ( length($line) > $limit ) {

# DBG

#print "Wrapping...";

# Get the first $limit +1 characters.

$part = substr($line,0,$limit +1);

# DBG

#print "The partial line is:\n$part\n";

# Check to see if the last character is a space.

$last_char = substr($part,-1, 1);

if ( " " eq $last_char ) {

# If it is, print the rest.

# DBG

#print "The last character was a space\n";

substr($line,0,$limit + 1) = "";

substr($part,-1,1) = "";

push(@newlines,"$part\n");

} else {

# If it is not, find the last space in the

# sub-line and print up to there.

# DBG

#print "The last character was not a space\n";

# Remove the character past $limit

substr($part,-1,1) = "";

# Reverse the line to make it easy to find

# the last space.

$revpart = reverse($part);

$index = index($revpart," ");

if ( $index > 0 ) {

substr($line,0,$limit-$index) = "";

push(@newlines,substr($part,0,$limit-$index)

. "\n");

} else {

# There was no space in the line, so

# print it up to $limit.

substr($line,0,$limit) = "";

push(@newlines,substr($part,0,$limit)

. "\n");

}

}

}

push(@newlines,$line);

}

close(FILE);

}

sub codeformat {

# Call subroutine wrap then filter through nenscript

&wrap($line_length);

# Pipe the results through nenscript to create a Postscript

# file that adheres to some decent format for printing

# source code (landscape, Courier font, line numbers).

# Print this to a temporary file first.

$tmpfile = "/tmp/nenscript$$";

open(FILE, "|$nenscript -2G -i$file -N -p$tmpfile -r") ||

die "Can't open nenscript: $!\n";

foreach $line (@newlines) {

print FILE $line;

}

close(FILE);

# Read the temporary file back into an array so it can be

# passed to the Samba print script.

@newlines = ("");

open(FILE, "<$tmpfile") || die "Can't open $file: $!\n";

while(<FILE>) {

push(@newlines,$_);

}

close(FILE);

system("rm $tmpfile");

}

sub createarray {

# Create the array for postscript

open(FILE, "<$file") || die "Can't open $file: $!\n";

while(<FILE>) {

push(@newlines,$_);

}

close(FILE);

}

Размещено на Allbest.ru

...

Подобные документы

  • Характеристика серверной операционной системы. Системные требования к аппаратному обеспечению, условиям эксплуатации и надежности защиты информации. Начало работы с загрузочным USB-flash-накопителем. Работа с vi-редактором и Samba. Установка Web-сервера.

    дипломная работа [2,1 M], добавлен 03.07.2014

  • Организация корпоративного файлового сервера, выполняющего функции прокси-сервера на базе ОС Linux. Процесс его реализации. Выбор оптимальной аппаратно-программной платформы. Расчёт сметы затрат на выполнение объёма работ по созданию FTP-сервера.

    дипломная работа [2,0 M], добавлен 06.07.2012

  • Изучение понятия и особенностей построения компьютерной сети с файл-сервером. Проект структурной схемы сети и схемы сети на плане здания. Удаленный доступ и удаленное управление сервером. Сети с шинной топологией. Характеристика требуемого оборудования.

    курсовая работа [1,5 M], добавлен 18.03.2013

  • Компоновка и конфигурирование Linux сервера. Общая информация об ALT Linux Server 5, его подвиды и основные функциональные возможности. Установка дистрибутива ALT Linux 5.0 "Ковчег" и Apache2+php+MySQL. Пример настройки работы сайта на web-сервере.

    курсовая работа [6,0 M], добавлен 24.10.2012

  • Виртуальная файловая система. Файловая система Ext2fs (Linux ext2 File System). Использование операционной системы Linux. Настройка веб-сервера Apache. Управление Web-сервером. Комплекс системных программных средств, реализующих управление файлами.

    курсовая работа [167,4 K], добавлен 25.12.2013

  • Моделирование сети, состоящей из 2 компьютеров и файл-сервера, соединённых через свитч. Принцип проверки пакетов на статус запрос-ответ. Работа простейшей сети, состоящей из 3х ПК и файл-сервера с HUB-ом и без него. Принцип очередей обработки пакетов.

    контрольная работа [326,1 K], добавлен 09.06.2010

  • Установка, разработка конфигурации и дальнейшее администрирование FTP-сервера на системе типа UNIX. Настройка операционной системы и удаленного управления. Основные команды; соединение и передача данных. Аутентификация, способы доступа к FTP-серверу.

    курсовая работа [1,3 M], добавлен 02.04.2015

  • История и основные сведения о сервере. Классификация и ресурсы серверов. Важность системы охлаждения для сервера. Выбор компонентов для сборки сервера. Основные неисправности и способы их устранения. Проведение технического обслуживания и ремонта сервера.

    дипломная работа [2,1 M], добавлен 24.06.2015

  • Общие сведения об операционной системе Linux. Анализ информации о серверах. Основные прикладные клиент-серверные технологии Windows. Сведения о SQL-сервере. Общая информация о MySQL–сервере. Установка и специфика конфигурирования MYSQL-сервера на LINUX.

    курсовая работа [1,3 M], добавлен 16.12.2015

  • Компоненты вычислительной системы, предоставляющие клиенту доступ к определенным ресурсам и обмен информацией. Функциональные возможности ядра веб-сервера Apache. Механизм авторизации пользователей для доступа к директории на основе HTTP-аутентификации.

    курсовая работа [105,6 K], добавлен 07.06.2014

  • Спецификация организации службы Short Message Service. Алгоритм работы сервера и возможность расширения функциональных возможностей. Реализация проекта на языке высокого уровня С++ на платформе Linux. Расчет себестоимости и цены программного продукта.

    дипломная работа [168,6 K], добавлен 19.01.2014

  • Исследование IT-структуры Егорьевского филиала МГГУ им. М.А. Шолохова и определение концепций организации сервера. Выбор и обоснование оптимальной аппаратно-программной платформы. Экономическое обоснование эффективности данного программного обеспечения.

    дипломная работа [1,6 M], добавлен 28.06.2010

  • Основные характеристики и особенности использования прокси-сервера в локальной сети. Способы выхода в Интернет из локальных сетей. Методы аутентификации прокси-сервером пользователя клиента, авторизация клиента для доступа к определенному контенту.

    курсовая работа [887,9 K], добавлен 21.04.2019

  • Основные понятия Proxy-сервера. Принцип сочетания централизации и децентрализации. Выбор протокола для почтового сервера. Синтез глобальных приоритетов. Описание входных и выходных данных. Основные свойства программного продукта, его назначение.

    дипломная работа [1,0 M], добавлен 27.06.2012

  • Робота з програмами FTP та Mail, їх порівняльна характеристика, оцінка переваг та недоліків, функції та можливості. Конфігурування http-серверу Apache, їхнє настроювання. Редагування файлу httpd.conf, файлу srm.conf, та access.conf, сервера inetd.

    реферат [24,1 K], добавлен 26.04.2011

  • Структура предприятия ОАО "Златмаш" и основные задачи Информационно-вычислительного центра. Разработка локального сервера, использующего движок Mediawiki на операционной системе Linux Ubuntu. Выбор языка и среды программирования, создание интерфейса.

    отчет по практике [1,2 M], добавлен 16.09.2012

  • Подготовка прокси-сервера. Структура базы данных MySQL. Формат файла статистики "access.log". Контроль заблокированных пользователей. Построение web-интерфейса, структура. Авторизация в системе управления пользователями. Анализ полученных результатов.

    курсовая работа [815,4 K], добавлен 23.06.2011

  • Система доменных имен. Регистрация доменов и обратное преобразование имен. Схема работы DNS сервера. Конфигурация BIND сервера. Расшифровка полей файлов зон. Программное обеспечение, настройка DNS сервера BIND. Проверка работоспособности системы.

    курсовая работа [1,6 M], добавлен 20.09.2013

  • Робота з клієнт-серверними додатками на основі сокетів. Розробка програм сервера та клієнта для обробки запитів клієнта сервером. Можливості програм сервера та клієнта. Створення гри "хрестики-нулики" на основі сокетів. Програмне забезпечення сервера.

    лабораторная работа [181,8 K], добавлен 23.05.2015

  • Электронная почта – средство обмена информацией; администрирование почтового сервера. Протоколы принудительной доставки почты. Создание и настройка виртуального сервера, параметры его конфигурации. Управление входящими сообщениями и почтовыми ящиками.

    презентация [296,8 K], добавлен 10.11.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.