Samba уже пару десятилетий используется для организации общего доступа к файлам и принтерам с разных устройств. Большое количество всевозможных опций обеспечивает гибкость, но далеко не всегда есть необходимость в тонкой настройке. Если вам просто нужно сделать так, чтобы папка была доступна для других участников локальной сети, загляните в руководство, опубликованное на этом сайте ранее:
Настройка файлового обмена между Windows и Ubuntu.
Если настроек, которые предоставляет графическая оболочка, для ваших целей все же недостаточно, либо вы хотите приобрести полезные навыки, придется закатать рукава и обратиться к мануалам, конфигурационным файлам и консоли. Именно такому способу настройки будет посвящена данная серия статей.
Установка и запуск 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 не владеет и никакими опасными привилегиями не обладает.
В следующей статье поговорим про уровни доступа. Подписывайтесь на сайт, чтобы ничего не пропустить.