Контакты

Сервис samba. Создание домашней сети с помощью Samba для устройств под управлением ОС Windows, Linux, Android. Настройка общих ресурсов

А может просто интерес и любопытство толкают пользователей на поиски разного подходящего софта. К такому софту относится Samba. Вам необходимо знать, как настроить Samba на Ubuntu Server, если вы желаете сделать из своего компьютера базу данных или файловое хранилище.

Установка Samba на Ubuntu Server дает возможность создать базу данных.

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

Для чего нужна?

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

  • Позволяет соединить друг с другом Unix-подобную систему, т. е. любую систему на Linux, и Windows. Причём не только Windows. Программа очень «всеядна»: MacOS , Solaris и другие ОС разной степени популярности.
  • Самба даёт возможность пользователям Виндовс использовать компьютеры на Ubuntu в качестве сервера. То есть пользоваться файлами, к которым налажен доступ, а также частью подключённых устройств.
  • Поддерживает доменную структуру NT Domain, управляет пользователями NT, поддерживает функции участника, первичного контроллера.

Наверное, для многих главное из этого - связь с машинами на Windows. Они в этом случае выступают в качестве клиента, а компьютер на Ubuntu - в качестве сервера. С другой стороны, пользователь Ubuntu также может получить доступ к сетевым папкам Windows.

Samba производится аж с 1992 года. И, что главное, новые версии выходят до сих пор. Последняя была выпущена седьмого марта 2017. С каждым годом разработчики стараются наладить совместимость большим количеством различных версий операционных систем, но главной фишкой остаётся соединение Linux-систем с Microsoft . В сравнении с Windows Server Samba может уступать ей из-за отсутствия поддержки части протоколов и инфраструктуры узлов. Однако многие утверждают, что скорость работы Самбы гораздо выше.

Настраиваем Samba

Перед непосредственно настройкой, программу нужно установить. Установка Samba выполняется таким же образом, как в случае с другими программами - при помощи ввода в терминал команды:

sudo apt-get install samba

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

После установки следует сделать бэкап файла конфигурации:

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

$ sudo vi /etc/samba/smb.conf

Либо редактируем существующий. В этом файле содержатся основные установки сервера Самбы. Чтобы разобраться, что мы будем делать дальше, нужно понимать, что означают различные строки.

  • Workgroup - рабочая группа. Значение этого параметра также часто будет Workgroup, поскольку в Виндовс домен рабочей группы по умолчанию выглядит именно так.
  • Netbios name - имя компьютера Ubuntu, которое видят пользователи Windows . Здесь можно вводить значение на своё усмотрение.
  • Security - режим авторизации пользователей. По умолчанию стоит User, то есть аутентификация на уровне пользователя. Пока что лучше так и оставить.
  • Os level - указывает приоритет, который имеет Samba над другими клиентами (ПК) в локальной или интернет-сети.
  • Name resolve order - очерёдность разрешения IP-адресов по NetBIOS имени.
  • Read only - привилегия чтения или записи каталога. Значение может быть «yes» - исключительно чтение, «no» - запись.

Создаём пользователя

Это простейшее действие, с которого можно начинать работу с Самбой.

Добавляем пользователя в самой ОС:

$ useradd -M -l -s /sbin/nologin username

Создаём для него пароль:

Занесём нашего пользователя в базу Samba:

$ smbpasswd -a username

При помощи команды $ smbpasswd можно выполнять другие различные действия:

  • $ smbpasswd username - смена пароля
  • $ smbpasswd -x username - удаление пользователя
  • $ smbpasswd -d username - бан пользователя

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

$ systemctl restart smb

Это базовые настройки Samba. Теперь можно попробовать применить программу на практике.

Доступ к папке

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

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

$ sudo mkdir -p /samba/access

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

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

Владельцем согласно коду является nobody.

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


workgroup = WORKGROUP
server string = Samba Server %v
netbios name = srvr1
security = user
map to guest = bad user
name resolve order = bcast host
dns proxy = no
#==============
И второй, содержащий данные о папке access:

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

Следуют разделы друг за другом в таком же порядке.

Обновляем изменения сервера:

$ sudo service smbd restart

Действия с компьютером на Windows

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

  1. Открываем командную строку. Желательно делать это с расширенными правами, т. е. от имени администратора.
  2. Выполняем команду:
  3. notepad C:\Windows\System32\drivers\etc\hosts
  4. Открывается файл, в котором вводим следующую строчку:
  5. 168.0.1 srvr1.domain.com srvr1
    Благодаря ей папка станет доступна.
  6. Открыть её можно при помощи строки «Выполнить». Жмём Win + R, вводим: После этого нам откроется папка.

Закрытая папка

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

Делаем папку с названием «Closed»:

$ sudo mkdir -p /samba/allaccess/closed

Делаем специальную группу, которая может иметь доступ к этой папке:

$ sudo addgroup securedgroup

Создаём особые права для разных групп:

$ cd /samba/access
$ sudo chown -R richard:securedgroup closed
$ sudo chmod -R 0770 closed/

Так же, как и в случае с открытой папкой, добавляем сведения в конфигурацию:


path = /samba/access/closed
valid users = @securedgroup
guest ok = no
writable = yes
browsable = yes

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

Как можно понять, мы сделали папку Closed внутри Access. Таким образом Access может открыть каждый пользователь локальной сети, но чтобы смотреть и редактировать Closed, нужно обладать особыми правами.

Чтобы убедиться, что всё работает именно так, как мы это задали в командном файле, можно выполнить несколько простых действий.

Создаём пользователя и добавляем его в нашу закрытую группу:

$ sudo usermod -a -G securedgroup winston

Пользователя у нас зовут, как пачку сигарет (или премьер-министра Британии).

Делаем для Уинстона пароль:

$ sudo smbpasswd -a winston

После этого нам предложат ввести новый пароль, чтобы зайти заново под только что созданным аккаунтом. Не забудьте после этого сделать перезагрузку. Теперь вы знаете, как настроить сервер через Самбу в Убунту.

Конечно, возможности 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-сервера.

Что же должен обеспечить 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 позволяет ограничивать доступ на всех этих уровнях и выполняет функции «главного браузера» в контексте рабочей группы или контролера домена.

С общеорганизационными вопросами разобрались. Давайте посмотрим теперь конкретно на реализацию и настройку SAMBA-сервера в Linux. Для работы Samba-сервера необходимо, чтобы были запущены два демона: smbd , обеспечивающий работу службы печати и разделения файлов для клиентов Samba (таких как Windows всех мастей), и nmbd , обеспечивающий работу службы имен NetBIOS (он может использоваться и для запроса других демонов служб имен). Для доступа к клиентам используется протокол TCP/IP . Как правило, Samba устанавливается вместе с дистрибутивом Linux. Как проверить? Просто дайте команду:

$ whereis samba

и вы должны получить что-то вроде этого:

Samba: /usr/sbin/samba /etc/samba /usr/share/man/man7/samba.7.gz

Если его не окажется в стандартной поставке, то добро пожаловать на ftp://ftp.samba.org/pub/samba/samba-latest.tar.gz или практически на любой сервер с программами для Linux. Пакет прост в установке, поэтому, чтобы не занимать места, будем считать, что он у вас установлен. Теперь давайте проверим, запущен ли демон:

$ ps -aux | grep smbd root 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 — не исключение. Он состоит из именованных разделов, начинающихся с имени раздела, заключенного в квадратные скобки. Внутри каждого раздела находится ряд параметров в виде key=value. Файл конфигурации содержит четыре специальных раздела: , , и отдельные ресурсы (shares). Как следует из названия, раздел содержит наиболее общие характеристики, которые будут применяться везде, но которые, впрочем, затем можно переопределить в секциях для отдельных ресурсов. Некоторые параметры этого раздела имеют отношение и к настройке клиентской части Samba.

Значения типичных параметров секции global :

Workgroup = имя_группы # название рабочей группы в сети Windows netbios 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.

Кроме того, при регистрации могут использоваться шифрованные (encrypted) и незашифрованные (plain-text) пароли . Последние используются в старых Windows (Windows for Workgroups, Windows 95 (OSR2), всех версиях Windows NT 3.x, Windows NT 4 (до Service Pack 3)). Для включения варианта использования шифрованного пароля используется опция encrypt password = yes. Прошу обратить особое внимание на эту опцию. В старых дистрибутивах Linux, которые создавались в эпоху Windows 95 (и с более старой версией Samba) по умолчанию шифрование паролей отключено, а samba до версии 2.0 данного режима вообще не поддерживает (кстати, эта опция и подобные ей — те, что не касаются доступа к конкретным ресурсам — используются и в клиенте).

Для правильного отображения русских имен файлов нужны следующие опции: 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 — наоборот).

Раздел позволяет пользователям подключаться к своим рабочим каталогам без явного их описания. При запросе клиентом своего каталога //sambaserver/sergej, машина ищет соответствующее описание в файле и если не находит его, то просматривает наличие этого раздела. Если раздел существует, то просматривается файл паролей для поиска рабочего каталога пользователя, направившего запрос, и при нахождении делает его доступным для пользователя.

Типичное описание данного раздела выглядит так:

Comment = Home Directories # комментарий, который виден в окне свойств сети browseable = no # определяет, выводить ли ресурс в списке просмотра. writable = yes # разрешает (no — запрещает) запись в домашнюю директорию create mode = 0750 # права доступа для вновь созданных файлов directory mode = 0775 # тоже, но только для каталогов

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

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. Если есть необходимость скрыть некоторые файлы, то в Unix/Linux для этого имя файла должно начинаться с точки (параметр hide dot files, который регулирует отображение скрытых файлов, по умолчанию равен yes ). Кроме того, есть возможность задать шаблоны имен скрытых файлов, для чего используется параметр hide files. Каждый шаблон начинается и заканчивается с символа косой черты (/) и может содержать символы, применяемые в регулярных выражениях. Например: hide files = /*.log/??.tmp/. Такие ухищрения обходятся пользователям Windows всего лишь установкой режима «Показывать скрытые и системные файлы» Проводника. Для уверенного ограничения доступности (возможности удаления) файла (каталога) используйте параметры veto files и delete veto files.

С CD-приводами дело обстоит несколько сложнее. Все дело в том, что в Unix-подобных системах понятие диска отсутствует как таковое, и для того чтобы получить доступ к нужному устройству, оно первоначально должно быть смонтировано в дерево каталогов (# mount -t iso9660 /dev/cdrom /mnt/cdrom), а после использования, чтобы не разрушить файловую систему, обязательно размонтировано (# umount /dev/cdrom), иначе устройство просто не отдаст диск. Если у вас на сервере запущен демон autofs , то проблема решается просто. Для того чтобы устройство, которое не используется в течение некоторого времени, было автоматически размонтировано, установите нужное значение параметра timeout в файле /etc/auto.master. Например:

/mnt/auto/etc/ --timeout=5

(подобная строка уже там есть, ее нужно только раскомментировать). Затем установите параметры для соответствующего устройства в файле /etc/auto.tab:

Cdrom -fstype=auto,ro:/dev/cdrom

После всего этого прописываем в /etc/smb.conf следующие строки, чтобы сделать доступным данный ресурс:

Path = /mnt/cdrom writable = no

Второй вариант состоит в использовании директив preexec и postexec, которые указывают, какие команды необходимо выполнить при обращении к ресурсу и после отсоединения от него (эти параметры можно указать для любого ресурса и даже в секции global, что открывает большие возможности).

Path = /mnt/cdrom read only = yes root preexec = mount /mnt/cdrom # монтировать ресурс имеет право только root root postexec = umount /mnt/cdrom # естественно, эти точки монтирования должны быть описаны в файле /etc/fstab, иначе необходимо указать и остальные данные.

Теперь при обращении к ресурсу автоматически монтируется CD-ROM, а иногда и размонтируется. Вся проблема в том, что решение о закрытии ресурса должен принять сервер — клиенты, как правило, не извещают об этом. Но обычно это происходит оттого, что ресурсом одновременно пользуются сразу несколько пользователей или на одном компьютере оставлен открытый файл на данном ресурсе (Device busy). Поэтому CD-ROM автоматически не размонтируется, единственный же приемлемый способ, чтобы освободить ресурс — посмотреть с помощью утилиты smbstatus номер процесса, использующего данный ресурс, и убить его командой # kill pid_number (или kill -s HUP pid_number).

Установив необходимую конфигурацию, теперь создадим учетные записи пользователей (за исключением гостевого входа с минимальными правами 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

В секции добавьте строку username map = /etc/smbusers.map. При этом пользователь Windows должен регистрироваться с паролем того пользователя, с которым он сопоставлен.

С помощью SAMBA можно организовать возможность сетевой печати с компьютеров под управлением Windows (если планируется отдельный сервер печати, то для этого бывает достаточно и машины на базе 486-процессора).

Для этого в секции необходимо записать такие строки:

Printcap name = /etc/printcap # файл описания принтеров, подключенных к системе load printers = yes # указывает на необходимость автоматического включения в список сетевых ресурсов printing = lprng # система печати (для Linux может еще использоваться bsd).

Path = /var/spool/samba # указывает на каталог, в который помещаются задания на печать browseable = yes printable = yes read only = yes

После создания файла протестируйте его с помощью утилиты testparm . К сожалению, при помощи данной программы можно обнаружить лишь синтаксические ошибки, а не логические, поэтому нет никакой гарантии, что описанные в файле сервисы будут корректно работать (при тестировании будут выведены все установки, даже те, которые установлены по умолчанию, — поэтому внимательно просмотрите результат). Но если программа не ругается, можете надеяться, что при запуске файл будет загружен без проблем. Корректность работы принтеров, перечисленных в файле /etc/printcap, с сервером SAMBA можно проверить с помощью утилиты testprns . Плюс не забывайте о.log-файлах: при возникновении проблем там иногда можно найти решение.

Теперь немного о хорошем. Конфигурирование Samba — довольно сложная процедура, но с дистрибутивом поставляется инструмент администрирования на основе Web, который называется swat (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 += USERID }

Теперь для запуска 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, вы предоставите ему возможность прочитать (право на выполнение) и предыдущие каталоги.

Теперь поговорим об использовании клиента 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,iocharset=koi8-r,codepage=866 //alex/sound /mnt/sound.

Если не указать имя пользователя и пароль, то система сама его у вас спросит. Не забывайте, что, просмотрев файл ~HOME/.bash_history, можно по командам, которые вы набирали, узнать пароль. Еще одна тонкость: если программа smbclient правильно отображает файлы с русскими именами, то модуль smbfs иногда не обращает на другую кодировку абсолютно никакого внимания, даже если указать ее явно. Говорят, это можно исправить патчем, но я для своего Red Hat его еще не нашел.

Если вы хотите, чтобы ресурс 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 (на ftp://ftp.altlinux.ru/ видел точно). Данная утилита позволяет просмотреть доступные сетевые ресурсы () и при необходимости смонтировать в нужный каталог, при этом возможен вариант монтирования с указанием лог ина и пароля для тех ресурсов, которые этого требуют. Возможен запуск файлового менеджера при монтировании (по умолчанию gmc ), создание каталогов для монтируемых ресурсов, задание опции автоматического сканирования при запуске программы (возможно с использованием протокола SMB по умолчанию) и сканирования по IP-адресам (планируется с использованием WINS-протокола). По невыясненным мною причинам в некоторых дистрибутивах при сканировании с помощью SMB-протокола не выводились сетевые ресурсы, поэтому я всегда использую второй метод, благо он действует безотказно, необходимо лишь задать диапазон IP-адресов для сканирования (если знаете). Для того чтобы отображались правильно русские имена файлов, не забудьте установить шрифты koi8-r во вкладке Опции > Выбор шрифта , а также проверить строки, указывающие кодировку кириллицы в файле smb.conf (см. выше).

Если gnomba может только монтировать и размонтировать ресурсы, то программа xsmbrowser позволяет еще и заходить в них как в папки на локальном компьютере (). Правда, мне пока не удалось заставить эту программу понимать файлы с русскими названиями, но есть и положительные стороны: при работе данной программы все команды по монтированию и различные сетевые запросы выводятся на консоль, что позволяет хорошо разобраться в них. Разработчики KDE тоже постарались: через Preferences > Information доступна утилита Samba Status , отображающая все подключения к/от локального компьютера, одновременно являющаяся удобным средством просмотра.log-файлов. Аналогичную информацию представляет и утилита komba , которую можно найти на http://linux.tucows.com/ ().

Как бы я ни хотел рассказать вам больше, но журнал есть журнал — всего не уместишь. Далее в помощь вам придут вездесущие man и info. Также всю необходимую справочную информацию можно получить из утилиты SWAT, к тому же в Red Hat 7.3 обнаружилась книга Using Samba Robert"a Eckstein"a (язык английский — плохо, совершенно бесплатно — хорошо: /usr/share/swat/using_samba), доступная также из SWAT (). В каталоге /usr/share/doc/samba можно найти дополнительную документацию, FAQ и примеры конфигурационных файлов. В различных форумах можно встретить довольно противоречивые мнения о работе Samba, от крайне отрицательных до полного восторга. Лично я на стороне сторонников этого эмулятора Windows NT, к тому же по результатам тестов при одинаковом оборудовании сервер Samba показывает производительность примерно на 25-30% выше, чем компьютер под управлением системы от Microsoft. Успехов.

Сейчас уже довольно часто в одной локальной сети можно встретить компьютеры под управлением Linux и Windows. Причины такого симбиоза могут быть разными: например, у владельцев интернет-кафе не хватило средств на приобретение лицензионной ОС для всех компьютеров, или системного администратора просто привлекли положительные стороны Linux. Популярность операционных систем от Microsoft во многом определятся клиентским ПО для Windows. Не секрет, что этот сектор программного обеспечения развит очень сильно. Множество фирм приложили к этому серьезные усилия и создали действительно хорошие, а главное, удобные в использовании программы, которые без труда может освоить даже рядовой пользователь. Зато в качестве сервера позиция Windows уже не так однозначна. Сервер под управлением Unix традиционно отличается надежностью, стабильностью в работе, безопасностью и зачастую меньшими требованиями к системным ресурсам. Но в любом случае, просто подключив компьютеры с разными программными платформами в сеть, мы не получим ожидаемого результата. Вся проблема в том, что у этих двух систем используются разные принципы организации сетевых ресурсов, несовместимые между собой.
Так как милости Microsoft ждать не приходится, и Windows вряд ли научится работать с сетевой файловой системой Unix (NFS) стандартными средствами , а программ сторонних производителей, если честно, я не знаю, то наиболее популярным способом является попытка научить Unix «притворяться», будто бы он - Windows NT.

Взаимодействие в сети компьютеров под управлением Windows построено на использовании протокола SMB (Server Message Block) - блоках серверных сообщений. Он обеспечивает выполнение всех необходимых в этих случаях задач по открытию и закрытию, чтению и записи, поиску файлов, созданию и удалению каталогов, постановке задания на печать и удалению его оттуда. Все необходимые для этого действия реализуются в Unix-подобных операционных системах посредством использования пакета SAMBA . Возможности его условно можно разделить на две категории: предоставление ресурсов (под коими понимается доступ к системе принтеров и файлам) для клиентов Windows и доступ к ресурсам клиентов. То есть, компьютер под управлением Linux может выступать как в роли сервера, так и клиента. Для начала рассмотрим вариант SAMBA-сервера.

Что же должен обеспечить 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 позволяет ограничивать доступ на всех этих уровнях и выполняет функции «главного браузера» в контексте рабочей группы или контролера домена.

С общеорганизационными вопросами разобрались. Давайте посмотрим теперь конкретно на реализацию и настройку SAMBA-сервера в Linux. Для работы Samba-сервера необходимо, чтобы были запущены два демона: smbd , обеспечивающий работу службы печати и разделения файлов для клиентов Samba (таких как Windows всех мастей), и nmbd , обеспечивающий работу службы имен NetBIOS (он может использоваться и для запроса других демонов служб имен). Для доступа к клиентам используется протокол TCP/IP . Как правило, Samba устанавливается вместе с дистрибутивом Linux . Как проверить? Просто дайте команду:

и вы должны получить что-то вроде этого:

Samba: /usr/sbin/samba /etc/samba /usr/share/man/man7/samba.7.gz

Если его не окажется в стандартной поставке, то добро пожаловать на ftp://ftp.samba.org/pub/samba/samba-latest.tar.gz или практически на любой сервер с программами для Linux. Пакет прост в установке, поэтому, чтобы не занимать места, будем считать, что он у вас установлен. Теперь давайте проверим, запущен ли демон:

$ ps -aux | grep smbd root 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 - не исключение. Он состоит из именованных разделов, начинающихся с имени раздела, заключенного в квадратные скобки. Внутри каждого раздела находится ряд параметров в виде key=value. Файл конфигурации содержит четыре специальных раздела: , и отдельные ресурсы (shares). Как следует из названия, раздел содержит наиболее общие характеристики, которые будут применяться везде, но которые, впрочем, затем можно переопределить в секциях для отдельных ресурсов. Некоторые параметры этого раздела имеют отношение и к настройке клиентской части Samba.

Значения типичных параметров секции global :

Workgroup = имя_группы # название рабочей группы в сети Windows netbios 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.

Кроме того, при регистрации могут использоваться шифрованные (encrypted) и незашифрованные (plain-text) пароли . Последние используются в старых Windows (Windows for Workgroups, Windows 95 (OSR2), всех версиях Windows NT 3.x, Windows NT 4 (до Service Pack 3)). Для включения варианта использования шифрованного пароля используется опция encrypt password = yes. Прошу обратить особое внимание на эту опцию. В старых дистрибутивах Linux, которые создавались в эпоху Windows 95 (и с более старой версией Samba) по умолчанию шифрование паролей отключено, а samba до версии 2.0 данного режима вообще не поддерживает (кстати, эта опция и подобные ей - те, что не касаются доступа к конкретным ресурсам - используются и в клиенте).

Для правильного отображения русских имен файлов нужны следующие опции: 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 конфигурация будет взята из этого файла. Если отдельного файла для какой-то машины не будет, то для работы с ней задействуется общий файл.

# sudo vim /etc/samba/sambacreds username=proft password=1 username=noboy password=

Выставим права доступа 0600

Sudo chmod 0600 /etc/samba/sambacreds

Новая строка для монтирования

Mount -t cifs //192.168.24.101/public /home/proft/shares/public -o user=proft,credentials=/etc/samba/sambacreds,workgroup=WORKGROUP,ip=192.168.24.101

И пример для /etc/fstab

//192.168.24.101/public /home/proft/shares/public cifs noauto,username=proft,credentials=/etc/samba/sambacreds,workgroup=WORKGROUP,ip=192.168.24.101 0 0

Открыть ресурс в файловом менеджере Nautilus/Nemo/etc можно по такому пути smb://192.268.24.101 .

Если Nemo пишет Nemo cannot handle "smb" locations. значит не хватает пакета gvfs-smb .

Доступ к серверу с Windows и Android клиента

Под Windows узнать рабочую группу с консоли можно с помощью

Net config workstation

Открыть ресурсы на удаленной машине можно набрав в строке Explorer (Проводник) или в Run (Start - Run) UNC-адрес: \192.168.24.101 .

Под Android подключится к серверу можно с помощью ES File Explorer , на вкладке Network добавляем сервер, просто по IP (без указания схемы, smb). После чего можно открывать расшаренные ресурсы. Для статистики: HDRIP-фильм идет без подтормаживания.

Дополнительное чтиво

А может просто интерес и любопытство толкают пользователей на поиски разного подходящего софта . К такому софту относится Samba. Вам необходимо знать, как настроить Samba на Ubuntu Server , если вы желаете сделать из своего компьютера базу данных или файловое хранилище.

Установка Samba на Ubuntu Server дает возможность создать базу данных.

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

Для чего нужна?

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

  • Позволяет соединить друг с другом Unix-подобную систему, т. е. любую систему на Linux, и Windows. Причём не только Windows. Программа очень «всеядна»: MacOS , Solaris и другие ОС разной степени популярности.
  • Самба даёт возможность пользователям Виндовс использовать компьютеры на Ubuntu в качестве сервера. То есть пользоваться файлами, к которым налажен доступ, а также частью подключённых устройств.
  • Поддерживает доменную структуру NT Domain, управляет пользователями NT, поддерживает функции участника, первичного контроллера.

Наверное, для многих главное из этого - связь с машинами на Windows. Они в этом случае выступают в качестве клиента, а компьютер на Ubuntu - в качестве сервера. С другой стороны, пользователь Ubuntu также может получить доступ к сетевым папкам Windows.


Samba производится аж с 1992 года. И, что главное, новые версии выходят до сих пор. Последняя была выпущена седьмого марта 2017. С каждым годом разработчики стараются наладить совместимость большим количеством различных версий операционных систем, но главной фишкой остаётся соединение Linux-систем с Microsoft . В сравнении с Windows Server Samba может уступать ей из-за отсутствия поддержки части протоколов и инфраструктуры узлов. Однако многие утверждают, что скорость работы Самбы гораздо выше.

Настраиваем Samba

Перед непосредственно настройкой, программу нужно установить. Установка Samba выполняется таким же образом, как в случае с другими программами - при помощи ввода в терминал команды:

sudo apt-get install samba


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

После установки следует сделать бэкап файла конфигурации:

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

$ sudo vi /etc/samba/smb.conf

Либо редактируем существующий. В этом файле содержатся основные установки сервера Самбы. Чтобы разобраться, что мы будем делать дальше, нужно понимать, что означают различные строки.

  • Workgroup - рабочая группа. Значение этого параметра также часто будет Workgroup, поскольку в Виндовс домен рабочей группы по умолчанию выглядит именно так.
  • Netbios name - имя компьютера Ubuntu, которое видят пользователи Windows . Здесь можно вводить значение на своё усмотрение.
  • Security - режим авторизации пользователей. По умолчанию стоит User, то есть аутентификация на уровне пользователя. Пока что лучше так и оставить.
  • Os level - указывает приоритет, который имеет Samba над другими клиентами (ПК) в локальной или интернет-сети.
  • Name resolve order - очерёдность разрешения IP-адресов по NetBIOS имени.
  • Read only - привилегия чтения или записи каталога. Значение может быть «yes» - исключительно чтение, «no» - запись.

Создаём пользователя

Это простейшее действие, с которого можно начинать работу с Самбой.


Добавляем пользователя в самой ОС:

$ useradd -M -l -s /sbin/nologin username

Создаём для него пароль:

Занесём нашего пользователя в базу Samba:

$ smbpasswd -a username


При помощи команды $ smbpasswd можно выполнять другие различные действия:

  • $ smbpasswd username - смена пароля
  • $ smbpasswd -x username - удаление пользователя
  • $ smbpasswd -d username - бан пользователя

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

$ systemctl restart smb

Это базовые настройки Samba. Теперь можно попробовать применить программу на практике.

Доступ к папке

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

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

$ sudo mkdir -p /samba/access

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

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

Владельцем согласно коду является nobody.


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

Workgroup = WORKGROUP
server string = Samba Server %v
netbios name = srvr1
security = user
map to guest = bad user
name resolve order = bcast host
dns proxy = no
#==============
И второй, содержащий данные о папке access:

Path = /samba/access
browsable =yes
writable = yes
guest ok = yes
read only = no

Следуют разделы друг за другом в таком же порядке.

Обновляем изменения сервера:

$ sudo service smbd restart

Действия с компьютером на Windows

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

  1. Открываем командную строку. Желательно делать это с расширенными правами, т. е. от имени администратора.
  2. Выполняем команду:
  3. notepad C:\Windows\System32\drivers\etc\hosts
  4. Открывается файл, в котором вводим следующую строчку:
  5. 168.0.1 srvr1.domain.com srvr1
    Благодаря ей папка станет доступна.
  6. Открыть её можно при помощи строки «Выполнить». Жмём Win + R, вводим: После этого нам откроется папка.


Закрытая папка

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

Делаем папку с названием «Closed»:

$ sudo mkdir -p /samba/allaccess/closed

Делаем специальную группу, которая может иметь доступ к этой папке:

$ sudo addgroup securedgroup

Создаём особые права для разных групп:

$ cd /samba/access
$ sudo chown -R richard:securedgroup closed
$ sudo chmod -R 0770 closed/

Так же, как и в случае с открытой папкой , добавляем сведения в конфигурацию:

Path = /samba/access/closed
valid users = @securedgroup
guest ok = no
writable = yes
browsable = yes

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

Как можно понять, мы сделали папку Closed внутри Access. Таким образом Access может открыть каждый пользователь локальной сети, но чтобы смотреть и редактировать Closed, нужно обладать особыми правами.

Чтобы убедиться, что всё работает именно так, как мы это задали в командном файле , можно выполнить несколько простых действий.

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

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

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

Итак, устанавливаем самбу любым подходящим способом для вашей операционной системы. Конфигурации справедливы для 3-й версии самбы. Дальше решаем, что нам нужно:

  • доступ по пользователю и паролю,
  • доступ по ip адресу,
  • доступ всем подряд без ограничений.

В зависимости от этого настройки будут немного разные.

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

Security = user passdb backend = tdbsam workgroup = MYGROUP server string = Samba path = /mnt/shara valid users = @users force group = users create mask = 0660 directory mask = 0771 writable = yes browseable = yes

# useradd share-user -M -G users -s /sbin/nologin

Импортируем этого пользователя в самбу и задаем пароль:

# smbpasswd -a share-user

И пробуем зайти на шару по адресу:

\\ip-сервера\share

Чтоб организовать доступ в зависимости от ip адреса , делаем такие настройки в smb.conf:

Security = share workgroup = MYGROUP server string = Samba map to guest = bad user path = /mnt/files browsable = yes writable = yes guest ok = yes read only = no hosts allow = 192.168.0.171

В данном случае полный доступ будет у адреса 192.168.0.171. Чтобы добавить всю подсеть, то указать нужно следующее:

Hosts allow = 192.168.0.

Комбинировать можно разные подсети и адреса, разделяя их пробелами. Для того, чтобы отключить доступ каким-то отдельным адресам из разрешенной подсети, можно сделать вот так:

Hosts allow = 192.168.0. except 192.168.0.15

Доступ будет разрешен всей подсети 192.168.0.0/24, кроме адреса 192.168.0.15.

Делаем перезапуск самбы и проверяем.

Если у вас установлена samba 4, то эта конфигурация не заработает и вы получите ошибку:

WARNING: Ignoring invalid value "share" for parameter "security"

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

Security = user map to guest = Bad Password

Остальные параметры оставляете те же. После этого доступ по ip будет работать и на 4-й версии самбы.

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

Security = user workgroup = MYGROUP server string = Samba guest account = nobody map to guest = Bad User path = /mnt/files browseable = Yes guest ok = Yes writeable = Yes public = yes

Не забываем сделать права для всех на папку:

# chmod 0777 /mnt/files

Перезапускаем самбу и пробуем зайти. Должно пустить без лишних вопросов.

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

Для более сложных конфигураций у меня есть отдельные статьи:

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:
  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
Проверьте себя на вступительном тесте и смотрите подробнее программу по. 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 отлично подойдёт



Понравилась статья? Поделитесь ей