Домой Безопасность Поддержка сетевого окружения samba. Быстрая и простая настройка samba

Поддержка сетевого окружения samba. Быстрая и простая настройка samba

Samba - это программное обеспечение для организации обмена файлами и работы с общими ресурсами между компьютерами под управлением Linux/Unix и операционной системой Windows. Samba состоит из клиентской и серверной части. Клиентская часть позволяет получить доступ к сетевым папкам и ресурсам Windows, а серверная, в свою очередь, открывает общий доступ к папке Ubuntu для других машин, в том числе и Windows.

В этой небольшой инструкции будет рассмотрена простейшая настройка Samba Ubuntu 18.04, а также как настроить общий доступ к папке Ubuntu с несколькими уровнями привилегий.

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

Получить доступ к расшаренным папкам в Ubuntu смогут как Linux так и Widnows машины, с помощью любой программы для работающей по протоколу SMB.

Для того чтобы все работало правильно, все машины должны состоять в одной рабочей группе, указанной на сервере Samba. По умолчанию для Windows, Linux и MacOS рабочая группа называется Workgroup. Чтобы узнать какая рабочая группа используется в вашей Windows откройте командную строку (Win+R, затем cmd) и выполните вот такую команду:

net config workstation

Нужный нам параметр мы видим в строке Домен рабочей станции . Это и есть рабочая группа.

Теперь, если у компьютера с Samba сервером в вашей сети будет постоянный IP адрес желательно ввести его в файле hosts. Для этого запустите командную строку от имени администратора:

И выполните команду:

notepad C:\Windows\System32\drivers\etc\hosts

В открывшимся файле добавьте строчку с IP адресом компьютера, на который будет установлен Samba:

192.168.0.1 srvr1.domain.com srvr1

Теперь можно переходить к вопросу как расшарить папку Ubuntu.

Настройка Samba в Ubuntu 16.04

Начнем, как обычно, с установки. Установка Samba Ubuntu вместе со всеми необходимыми компонентами выполняется командой:

sudo apt-get install -y samba samba-common python-glade2 system-config-samba

Когда все будет установлено, можно переходить к настройке. Сначала создайте резервную копию оригинального файла конфигурации Samba:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

После создания резервной копии, создайте свой файл конфигурации, этой командой:

sudo vi /etc/samba/smb.conf

Сначала укажем глобальные настройки файлового сервера. Для этого вставьте в файл такие строки:


workgroup = WORKGROUP

netbios name = Ubuntu Share
dns proxy = no

max log size = 1000
passdb backend = tdbsam
unix password sync = yes

pam password change = yes
map to guest = bad user
usershare allow guests = yes

Рассмотрим подробнее что значат эти строки.

  • workgroup - рабочая группа, как уже говорилось должна одинакова на всех машинах
  • netbios name - имя компьютера, которое будет отображаться в Windows;
  • log file - адрес файла, куда будут складываться сообщения об ошибках и другая информация;
  • security - по умолчанию выполнять аутентификацию на уровне пользователя;
  • name resolve order - очередность разрешения IP адресов по NetBIOS имени. bcast - означает отправить в локальную сеть широковещательный запрос. Если все компьютеры между которыми планируется взаимодействие находятся в одной сети этот вариант оптимальный;
  • passdb backend - способ хранения паролей пользователей;
  • unix password sync - синхронизация паролей пользователей samba с локальными паролями Unix;
  • map to guest - указывает, когда пользователю будет предоставляться гостевой доступ. Доступно три значения - never - никогда, bad user - когда такого пользователя не существует, bad password - когда пароль введен неверно,

Когда завершите создание конфигурационного файла, переходим к вопросу как расшарить папку Ubuntu для Windows.

Общий доступ к папке Ubuntu

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

Создайте папку, к которой будем открывать доступ, например:

sudo mkdir -p /samba/allaccess

После того как папка создана, нужно сделать для нее правильные права доступа. Следующие команды разрешают доступ к папке для всех и делают владельцем nobody:

cd /samba
sudo chmod -R 0755 allaccess
sudo chown -R nobody:nogroup allaccess/

Следующим шагом будет описать папку allaccess в файле настройки samba:


path = /samba/allaccess
browsable = yes
writable = yes
guest ok = yes
read only = no

Теперь ваш конфигурационный файл должен выглядеть вот так:


workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
netbios name = Ubuntu Share
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
passdb backend = tdbsam
unix password sync = yes
passwd program = /usr/bin/passwd %u
pam password change = yes
map to guest = bad user
usershare allow guests = yes
#==============
path = /samba/allaccess
browsable = yes
writable = yes
guest ok = yes
read only = no

Рассмотрим подробнее опции, которые были здесь использованы:

  • path - путь к папке, которую нужно расшарить;
  • browsable - будет ли папка отображаться в списке доступных шар;
  • writable - будет ли папка доступна для записи;
  • read only - папка доступна только для чтения;
  • guest ok, public - будет ли разрешен гостевой доступ;
  • only guest - если установлено yes, то папка будет доступна только гостям;
  • hosts allow - ip адреса, с которых можно получить доступ к этому серверу;
  • valid users - по умолчанию могут авторизоваться все пользователи, если в этом параметре передать список пользователей, то авторизоваться смогут только они;
  • create mask - маска прав для создаваемых файлов.

Чтобы применить изменения, перезапустите сервер Samba:

sudo systemctl restart samba

Настройка Samba Ubuntu 16.04 для анонимного доступа завершена. Теперь вы можете проверить доступность общей папки allaccess из Windows, для этого нажмите Win+R и выполните:

\\srvr1\allaccess

Вы увидите нашу папку. Если не увидите, проверьте еще раз конфигурацию. Доступ к папке можно получить без авторизации samba. Настойка Samba шары с доступом без авторизации завершена.

Также вы можете подключится к этому серверу из Linux с помощью Nautilus для этого достаточно набрать адрес smb://ip-сервера , в разделе другие места:

Защищенный общий доступ к папке Ubuntu

Чтобы расшарить папку для Windows Ubuntu, к которой будут иметь доступ только пользователи из определенной группы, создадим отдельную папку и опишем ее в файле настройки Samba в Ubuntu.

Сначала создаем папку:

sudo mkdir -p /samba/allaccess/secured

Создаем группу:

sudo addgroup securedgroup

Настраиваем права:

cd /samba/allaccess
$ sudo chown -R richard:securedgroup secured
$ sudo chmod -R 0770 secured/

Последний шаг, добавляем настройки в конфигурационный файл samba:

sudo vi /etc/samba/smb.conf


path = /samba/allaccess/secured
valid users = @securedgroup
guest ok = no
writable = yes
browsable = yes

Перезапустите сервер Samba. Теперь доступ к общей папке в Ubuntu могут получить только пользователи группы securegroup.

Чтобы проверить как это работает добавим пользователя richard в нашу группу:

sudo usermod -a -G securedgroup richard

Основной файл настройки Samba - /etc/samba/smb.conf. Изначальный файл конфигурации имеет значительное количество комментариев для документирования различных директив настройки.

Не все возможные опции включены в файле настроек по умолчанию. Смотрите руководство man smb.conf или Сборник ЧаВо по Samba для уточнения деталей.

1. Сначала измените следующие пары ключ/значение в секции файла /etc/samba/smb.conf:

Workgroup = EXAMPLE ... security = user

Параметр security находится значительно ниже в секции и по умолчанию закомментирован. Также замените EXAMPLE на что-то более соответствующее вашему окружению.

2. Создайте новую секцию в конце файла или раскомментируйте один из примеров для каталога, который нужно настроить на общий доступ:

Comment = Ubuntu File Server Share path = /srv/samba/share browsable = yes guest ok = yes read only = no create mask = 0755

    comment : короткое описание разделяемого ресурса. Используется для вашего удобства.

    path : путь до разделяемого каталога.

    Этот пример использует /srv/samba/sharename поскольку, в соответствии со стандартом иерархии файловых систем (FHS), каталог /srv - это место, где должны находится все данные, относящиеся к данному сайту. Технически разделяемый ресурс Samba может быть размещен в любом месте файловой системы, где позволяют файловые ограничения доступа, но следование стандартам рекомендуется.

    browsable : позволяет клиентам Windows просматривать содержимое разделяемого каталога с помощью проводника Windows.

    guest ok : позволяет клиентам подключаться к разделяемому ресурсу без указания пароля.

    read only : определяет доступность ресурса только на чтение или с привилегиями на запись. Привилегии на запись доступны только при указании no , как показано в данном примере. Если значение yes , то доступ к ресурсу будет только на чтение.

    create mask : определяет какие права доступа будут установлены для создаваемых новых файлов.

3. Теперь, поскольку Samba настроена, требуется создать каталог и установить на него права доступа. Введите в терминале:

Sudo mkdir -p /srv/samba/share sudo chown nobody.nogroup /srv/samba/share/

параметр -p говорит mkdir создать полное дерево каталога, если оно не существует.

4. Наконец, перезапустите сервисы samba для применения новых настроек:

Sudo restart smbd sudo restart nmbd

Теперь вы можете находить Ubuntu файл сервер с помощью клиента Windows и просматривать его разделяемые каталоги. Если ваш клиент не показывает ваши разделяемые ресурсы автоматически, попробуйте обратиться к вашему серверу по его IP адресу, например, \\192.168.1.1, из окна проводника Windows. Для проверки, что все работает, попробуйте создать каталог внутри вашего разделяемого ресурса из Windows.

Для создания дополнительных разделяемых ресурсов создайте новую секцию в /etc/samba/smb.conf и перезапустите Samba. Просто убедитесь, что разделяемый каталог создан и у него корректные права доступа.

Разделяемый ресурс "" и путь /srv/samba/share - это просто примеры. Установите название ресурса и имя каталога в соответствии с вашим окружением. Хорошей идеей является использование в качестве названия ресурса имени его каталога в файловой системе. Другими словами ресурс можно указать как для каталога /srv/samba/qa.

Samba - программа, которая позволяет обращаться к сетевым дискам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части. Является свободным программным обеспечением, выпущена под лицензией GPL .

Samba работает на большинстве Unix-подобных систем, таких как GNU/Linux, POSIX-совместимых Solaris и Mac OS X Server, на различных вариантах BSD, в OS /2, Windows. Samba включена практически во все дистрибутивы GNU/Linux, в том числе, конечно, и в Ubuntu .

Установка

Чтобы сделать общую папку в Ubuntu Desktop достаточно щёлкнуть правой кнопкой мыши на папке и выбрать пункт меню «Опубликовать папку». Никаких конфигурационных файлов при этом править не надо. Всё описанное ниже относится только к ручной настройке, например, в случае создания файлового сервера.

Для установки достаточно открыть терминал и ввести:

Sudo apt-get install samba

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

Настройка

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

Sudo cp /etc/samba/smb.conf{,.bak}

Теперь можно отредактировать файл настроек /etc/samba/smb.conf, для этого откройте его в любом текстовом редакторе с правами суперпользователя. Например, так:

Sudo nano /etc/samba/smb.conf

Написанное далее вообще говоря всего лишь один конкретный сценарий использования Samba, и в огромном количестве случаев всё настраивается абсолютно не так. Статью необходимо исправить, сделав акцент на возможностях Samba, а не только на применении этой программы в качестве файлохранилища с локальной авторизацией. Пример же с файлохранилищем лучше вынести в отдельную подробную статью.

Пример настройки Samba в качестве автономного файлового сервера с авторизацией:

; Глобальные настройки сервера ; General server settings ; Имя компьютера, которое будет отображаться в сетевом окружении netbios name = main-server server string = ; Рабочая группа клиентов workgroup = WORKGROUP announce version = 5.0 socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192 passdb backend = tdbsam security = user null passwords = true ; Файл для альясов имен юзеров username map = /etc/samba/smbusers name resolve order = hosts wins bcast ; wins support устанавливается в yes, если ваш nmbd(8) в Самба является WINS сервером. Не устанавливайте этот параметр в yes если у вас нет нескольких подсетей и вы не хотите чтобы ваш nmbd работал как WINS сервер. Никогда не устанавливайте этот параметр в yes более чем на одной машине в пределах одной подсети. wins support = no ; Поддержка принтеров printing = CUPS printcap name = CUPS ; Логи log file = /var/log/samba/log.%m syslog = 0 syslog only = no ; Настройка привязки к интерфейсам, на каких слушать, если не указано слушает на все интерфейсах; interfaces = lo, eth0 ; bind interfaces only = true ; ; ; path = /var/lib/samba/printers ; browseable = yes ; guest ok = yes ; read only = yes ; write list = root ; create mask = 0664 ; directory mask = 0775 ; ; ; path = /tmp ; printable = yes ; guest ok = yes ; browseable = no ; ; ;path = /media/cdrom ;browseable = yes ;read only = yes ;guest ok = yes ; Шара жесткого диска; Имя шары, видно у клиентов ; Путь к расшариваемому диску path = /media/sda1 ; Можно ли просматривать browseable = yes read only = no guest ok = no create mask = 0644 directory mask = 0755 ; Привязка к определенному имени пользователя или группе, имена через пробел; force user = user1 user2 ; force group = group1 group2 ; Еще один жесткий диск, по аналогии с тем что выше path = /media/sde1 browseable = yes read only = no guest ok = no create mask = 0644 directory mask = 0755

Теперь надо разобраться с пользователями.

Samba использует пользователей которые уже есть в системе, возьмем для примера имя user, допустим что он уже есть в системе, надо внести его в базу данных SMB и назначить пароль для доступа к общим ресурсам, сделаем это командой:

Smbpasswd -a user

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

Smbpasswd -e user

Далее создадим псевдоним для имени пользователя user что бы облегчить себе доступ с Windows машины на которой у нас например пользователь с именем Admin, для этого создадим и отредактируем файл /etc/samba/smbusers:

Sudo touch /etc/samba/smbusers sudo gedit /etc/samba/smbusers

Впишите в файл пару строк

# Unix_name = SMB_name1 SMB_name2 user = Admin

На этом настройка закончена, перезапустите Samba.

Установить самый простой GUI для Samba можно командой:

Sudo apt-get install system-config-samba

Запускается он командой:

Sudo system-config-samba

Все изменения он записывает в конфигурационный файл samba.

Для удалённого администрирования Samba в качестве web-интерфейса для Samba отлично подойдёт

Samba - это программа, которая позволяет компьютерам UNIX/Linux имитировать машины Windows. При помощи Samba компьютеры могут обмениваться файлами или управлять заданиями на печать как файл-серверы или серверы печати под Windows. Подобно операционной системе UNIX/Linux, на которой она работает, Samba представляет собой разработанное множеством программистов ПО с открытым исходным кодом.

Протокол SMB используется Microsoft Windows 2000, NT и 95/98 для организации доступа к дискам и принтерам. Используя набор утилит Samba от Andrew Tridgell ([email protected]), UNIX-машины (включая Linux) могут организовывать доступ к дискам и принтерам для Windows-машин. Утилиты smbfs, написанные Paal-Kr. Engstad ([email protected]) и Volker Lendecke ([email protected]), дают возможность машинам с UNIX монтировать SMB-ресурсы, доступные на машинах с Windows или Samba.

C помощью Samba можно реализовать следующие наиболее распространенные:

  1. Давать доступ к дискам Linux Windows-машинам.
  2. Получать доступ к дискам Windows для машин под Linux.
  3. Давать доступ к принтерам Linux для Windows-машин.
  4. Получать доступ к принтерам Windows из Linux-систем.

Инсталляция и тестирование Samba

Инсталляцию, как известно, следует начинать с подробного изучения документации. Правда, большинство системных администраторов пренебрегают этим правилом, руководствуясь другим: «Если уже ничего не помогает, почитайте документацию». В общем, советуем начать инсталляцию Samba с простой команды: $ man samba (рис. 1).

А также 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"ом:), то есть:

$ tar -zxvf samba-latest.tar.gz

Если у вас не возникло никаких проблем при извлечении данного пакета, вы обнаружите новую директорию, например samba-latest, и в ней извлеченные файлы. Перейдите в нее, загляните в файлы «README» и «Manifest» - инструкция по инсталляции находится в последнем файле и выглядит примерно так:

$ ./configure $ make $ su # make install

Теперь надо обратить внимание на то, где находятся ваши файлы конфигурации. Большинство дистрибутивов Samba по умолчанию помещает их в директорию /etc, а себя - в директорию /usr/local/samba.

Конфигурирование Samba

Основная информация о конфигурации Samba находится в файле smb.conf. С этим файлом следует обращаться осторожно. Если вы планируете каким-либо образом изменить работающую версию, обязательно сделайте копию.

Для того чтобы первый раз запустить сервер, необходимо иметь рабочую версию файла smb.conf. Перейдите в директорию, в которой должен находиться ваш конфигурационный файл. Скорее всего это будет /etc или /usr/local/samba/lib. Сделайте копию данного файла, например smb.old, - это возможно при наличии прав root. Теперь, когда у вас есть «чистый» файл, можно ввести самую простую конфигурацию, то есть набрать следующие строки:

#Basic Samba configuration file (smb.conf) workgroup = PTO netbios name = GALKA

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

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

Имеется два демона SMB: /usr/sbin/smbd и /usr/sbin/nmbd. Вы можете запустить демоны Samba из inetd или как автономный процесс. Samba будет отвечать чуть быстрее в случае, если она запущена как автономный процесс.

Иногда бывает необходимо проверить наличие в файле /etc/services примерно таких строк:

Netbios-ns 137/tcp nbns netbios-ns 137/udp nbns netbios-dgm 138/tcp nbdgm netbios-dgm 138/udp nbdgm netbios-ssn 139/tcp nbssn

Убедитесь, что все они не закомментированы. В зависимости от вашего дистрибутива вам, вероятно, даже понадобится добавить их в этот файл. Samba не сможет привязаться к соответствующим портам, до тех пор пока этих строк не будет в файле /etc/services.

Для запуска демонов из 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 `cat /var/run/inetd.pid`

Для запуска демонов из системных стартовых скриптов поместите следующий скрипт в файл /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.

#! /bin/sh . /etc/rc.config # Determine the base and follow a runlevel link name. base=${0##*/} link=${base#*} # Force execution if not called by a runlevel directory. test $link = $base && START_SMB=yes test "$START_SMB" = "yes" || exit 0 # The echo return value for success (defined in /etc/rc.config). return=$rc_done case "$1" in start) echo -n "Starting SMB services:" startproc /usr/sbin/nmbd -D || return=$rc_failed startproc /usr/sbin/smbd -D || return=$rc_failed echo -e "$return" ;; startd) echo -n "Starting SMB services:" startproc /usr/sbin/nmbd -D -d 10 || return=$rc_failed startproc /usr/sbin/smbd -D -d 10 || return=$rc_failed echo -e "$return" ;; stop) echo -n "Shutting down SMB services:" killproc -TERM /usr/sbin/nmbd || return=$rc_failed killproc -TERM /usr/sbin/smbd || return=$rc_failed echo -e "$return" ;; restart|reload) $0 stop && $0 start || return=$rc_failed ;; status) echo -n "Checking for service smb: " checkproc /usr/sbin/nmbd && echo -n "OK " || echo -n "No process " checkproc /usr/sbin/smbd && echo "OK " || echo "No process" ;; *) echo "Usage: $0 {start|stop|restart|reload|status}" exit 1 esac # Inform the caller not only verbosely and set an exit status. test "$return" = "$rc_done" || exit 1 exit 0

Если при старте Samba вы получаете сообщение, в котором говорится, что демон не может подключиться к порту 139, то скорее всего у вас уже есть запущенные процессы Samba, которые не были завершены. Посмотрите список процессов (используя команду "ps ax | grep mbd") для того, чтобы определить, есть ли еще запущенные сервисы Samba. Если же демоны отказываются запускаться по каким-либо другим причинам, то вероятнее всего этот скрипт не подходит к вашему UNIX/Linux и вам придется еще раз покопаться в документации, что-то в нем поправить, а может быть, и переписать.

Основная настройка smb.conf

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

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

Теперь переходите в самую первую закладку «Конфигурация» (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) или просто . Переходим на закладку «Дополнительно» (Advanced) и нажимаем на «Browse Master» в левом окне, а в правом устанавливаем значение «Disabled». Вот и все. Теперь остается только несколько раз нажать кнопку «ОК» и перезагрузить Windows.

В Windows NT экраны свойств сети немного различаются (показаны на рисунках), но главная концепция построения остается той же.

После перезагрузки Windows смело жмите на «Сетевое окружение» (Network Neighborhood) и вы сможете увидеть Samba-сервер, а также свою домашнюю директорию на Linux-сервере. Теперь вы можете просто подключить данные ресурсы как сетевые диски и присвоить им drive letters.

Немного усложним конфигурацию: сделаем директорию /home/public доступной для чтения всеми, но разрешим помещать в нее информацию только людям из группы ADMINS. Для этого изменим запись следующим образом:

Comment = Public Stuff path = /home/public public = yes writable = yes printable = no write list = @ADMINS

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

Доступ к дискам Windows из Linux

Вряд ли начинающие пользователи Linux OS смогут быстро разобраться с системой доступа к Linux-файлам из-под Windows, и наоборот. Но не все так сложно. Доступ к Linux-ресурсам из под Windows был кратко описан выше, а доступ к Windows-ресурсам из под Linux мы сейчас рассмотрим.

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

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

/usr/sbin/smbclient -L host

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

Для использования клиента выполните следующую команду:

/usr/sbin/smbclient service

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

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

Server time is Wen May 22 15:58:44 2001 Timezone is UTC+10.0 Domain= OS= Server= smb: \>

Команды для использования Samba аналогичны командам ftp, но если вы не умеете пользоваться ни тем ни другим, напечатайте h, чтобы получить помощь.

Вы, конечно, можете использовать smbclient для тестирования, однако очень скоро вам это надоест. Для работы вам вероятнее всего понадобится пакет smbfs. Smbfs поставляется с двумя простыми утилитами - smbmount и smbumount. Они работают подобно mount и umount для SMB-ресурсов. Например,

Smbmount//computer_name/catalog/Mountpoint -U user_name

В итоге вы получите «подмонтированный» ресурс с возможностью обращения к нему привычными методами проводника.

Принт-сервер под Linux

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

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

Printing = bsd printcap name = /etc/printcap load printers = yes log file = /var/log/samba-log.%m lock directory = /var/lock/samba comment = All Printers security = server path = /var/spool/lpd/lp browseable = no printable = yes public = yes writable = no create mode = 0700 security = server path = /var/spool/lpd/lp printer name = lp writable = yes public = yes printable = yes print command = lpr -r -h -P %p %s

Убедитесь, что путь к принтеру (в нашем случае для ) соответствует буферной директории, указанной в файле /etc/printcap, то есть проверьте наличие строк:

Printcap name = /etc/printcap load printers = yes

Эти строки контролируют, должны ли все принтеры, перечисленные в /etc/printcap, быть загружены по умолчанию. В этом случае нет нужды в настройке каждого принтера в отдельности. Раздел указывает настройки для принтеров, которые вы хотите определить явно. Если используемая вами подсистема печати не работает подобным образом (BSD), то вам необходимо настроить фальшивый файл printcap (либо использовать "print command", см. ниже). Для получения дополнительной информации о системе printcap см. Printing-HOWTO.

Доступ к принтеру Windows с машин, работающих под Linux

Для доступа к принтеру на Windows-машине необходимо соблюдение следующих условий:

  1. Вам необходимо иметь в файле /etc/printcap правильные записи, которые должны соответствовать локальной структуре директорий (для буферной директории и т.п.)
  2. У вас должен быть скрипт /usr/bin/smbprint. Он поставляется вместе с исходными текстами Samba, но не со всеми двоичными дистрибутивами Samba.
  3. Если вы хотите преобразовывать ASCII-файлы в PostScript, вы должны иметь программу nenscript или ее эквивалент. Программа nenscript - это конвертор PostScript, который обычно устанавливается в директорию /usr/bin.

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

Cm - комментарий; lp - имя устройства, открываемого для вывода; sd - директория спула принтера (на локальной машине); af - файл учета пользования принтером; mx - максимальный размер файла (ноль - без ограничений); if - имя входного фильтра (скрипта).

Фрагмент файла /etc/printcap:

# /etc/printcap # # //galka/oreilly via smbprint # lp:\ :cm=HP 5MP Postscript OReilly on galka:\ :lp=/dev/lp1:\ :sd=/var/spool/lpd/lp:\ :af=/var/spool/lpd/lp/acct:\ :mx#0:\ :if=/usr/bin/smbprint:

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

#!/bin/sh –x # # 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.

Заключение

Еще совсем недавно возможности Samba ограничивались лишь перечисленными выше. Однако можно с уверенностью говорить о том, что новая версия Samba 2.2 догоняет Windows 2000 по функциональным возможностям и содержит дополнительные усовершенствования. Один из ведущих разработчиков Samba Джереми Эллисон (Jeremy Allison) называет ее «важным обновлением», которое поможет системам Samba легче внедряться в сети Microsoft. ПО обеспечивает экономию не только потому, что не нужно платить за серверную ОС, но и потому, что не приходится оплачивать «клиентские» лицензии за все компьютеры, которые используют сервер.

О новых возможностях Samba 2.2. читайте в нашей статье «Samba 2.2 - что нового » .

КомпьютерПресс 10"2001

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

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

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

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

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

Раздел позволяет удаленным пользователям иметь доступ к своим (и только своим) домашним директориям на локальной 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 ; Раскомментируйте эту строку, если вы хотите дать доступ пользователю "гость" ; guest account = nobody log file = /var/log/samba-log.%m lock directory = /var/lock/samba share modes = yes comment = Home Directories browseable = no read only = no create mode = 0750 comment = Temporary file space path = /tmp read only = no public = yes

Написав новый файл smb.conf , полезно проверить его правильность. Вы можете проверить правильность написания файла smb.conf , используя утилиту testparm (справочная страница: testparm); если testparm сообщает об отсутствии проблем, то smbd правильно загрузит файл настроек.

Полезный трюк: Если ваш сервер Samba имеет больше одного ethernet интерфейса, то smbd может подключится к неправильному. Если это так, что вы можете явно заставит ее подключаться к нужному добавив строку в раздел файла /etc/smb.conf:

Interfaces = 192.168.1.1/24

здесь замените приведенный адрес на адрес вашего интерфейса ethernet. Значение 24 является правильным для сети класса C, но вам может понадобиться пересчитать это значение, если вы разделили ее на подсети. Это число относится к сетевой маске. Числа для других классов сетей приведены в IP-Masquerade mini-HOWTO.

Также существует GUI-утилита для настройки Samba: GtkSamba.

Новое на сайте

>

Самое популярное