Samba. Установка и простая настройка

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

Установка и запуск Samba в Ubuntu.

Поскольку Samba присутствует в репозитории Ubuntu, сложностей с установкой возникнуть не должно. Выполните:

и затем подтвердите установку пакета со всеми зависимостями нажатием Y (или Д).

После установки будет автоматически запущен демон smbd, обеспечивающий доступ к файлам и принтерам. Давайте убедимся, что он уже работает:

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

Настройка Samba в Ubuntu. Конфигурационный файл /etc/samba/smb.conf.

Конфигурационный файл /etc/samba/smb.conf, о котором идет речь, содержит все основные настройки. Именно в нем прописывается:

какие именно папки и принтеры будут видны пользователям других машин в сети;

кто и при каких условиях будет иметь доступ к файлам и принтерам;

смогут ли клиенты не только читать, но и записывать данные;

будут ли пользователи иметь доступ к своим домашним директориям;

каким образом будут вестись логи;

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

Содержимое файла /etc/smb.conf делится на разделы, содержащие отдельные параметры и их значения. Взгляните сами:

Не пугайтесь большого количества текста. Строки, начинающиеся с символов «#» и «;» считаются комментариями и не учитываются интерпретатором при разборе файла. Название раздела заключено в квадратные скобки, далее следуют относящиеся к этому разделу параметры и их значения, разделенные знаком «=». Параметров, которые можно использовать, очень много, а вариантов их значений — еще больше.

Создаем общедоступную папку в Ubuntu с помощью Samba.

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

Если потребуется восстановить исходный файл, удалите smb.conf и дайте это имя файлу smb-default.conf.

Теперь создадим шару, доступную для чтения и записи всем желающим. Вставьте в /etc/samba/smb.conf:

Первая строка — название шары. Вторая — ее описание или любой комментарий создателя, доступный всем. Третья — путь к папке, доступ к которой мы открываем. Не забудьте убедиться, что такая директория существует и имеет подходящие права. Параметр guest ok со значением yes разрешает подключаться без логина и пароля, browseable определяет, будет ли наша шара видна внутри сети, writable разрешает запись, create mask и directory mask выставляют права, force user принудительно определяет каждого подключившегося как пользователя publicshare.

Теперь нам нужно создать указанного пользователя и передать ему /home/public_share :

Ключ --system означает, что мы создаем не простого пользователя, а системного. Пользователи из этой категории имеют минимум прав, добавляются в группу nogroup и обычно используются для запуска системных сервисов.

Вместо guest ok часто применяется параметр public. Это синонимы. Вы можете использовать любой из них с абсолютно одинаковым результатом. У многих других параметров также есть синонимы. Бывают и антонимы, например, read only является антонимом по отношению к writable.

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

Для проверки правильности smb.conf в пакет Samba входит утилита testparm. Просто запустите ее без каких-либо ключей:

Вы увидите результат проверки, а после повторного нажатия Enter — выжимку из конфига.

Обратите внимание: на втором скриншоте параметр writable = yes заменен аналогичным по смыслу read only = no. Отсутствие directory mask = 0755, вероятно, объясняется тем, что 0755 является для этого параметра значением по умолчанию, а потому указывать его нет смысла.

Теперь подключаемся (в Windows, например, для этого достаточно заглянуть в сетевое окружение) — и видим все доступные расшаренные папки.

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