Samba - это программное обеспечение для организации обмена файлами и работы с общими ресурсами между компьютерами под управлением Linux/Unix и операционной системой Windows. Samba состоит из клиентской и серверной части. Клиентская часть позволяет получить доступ к сетевым папкам и ресурсам Windows, а серверная, в свою очередь, открывает общий доступ к папке Ubuntu для других машин, в том числе и Windows. В этой небольшой инструкции будет рассмотрена простейшая настройка Samba Ubuntu 16.04, а также как настроить общий доступ к папке Ubuntu с несколькими уровнями привилегий. Мы создадим три общие папки с различными уровнями разрешений. Папку с анонимным доступом, с доступом для пользователей, входящих в определенную группу и доступом лишь для определенного пользователя. Получить доступ к расшаренным папкам в Ubuntu смогут как Linux так и Widnows машины, с помощью любой программы для работающей по протоколу SMB. Подготовка Windows Для того чтобы все работало правильно, все машины должны состоять в одной рабочей группе, указанной на сервере 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 Сначала укажем глобальные настройки файлового сервера. Для этого вставьте в файл такие строки: [global] workgroup = WORKGROUP server string = Samba Server %v netbios name = srvr1 security = user map to guest = bad user name resolve order = bcast host wins support = no dns proxy = no Рассмотрим подробнее что значат эти строки. workgroup - рабочая группа, как уже говорилось должна одинакова на всех машинах netbios name - имя компьютера, которое будет отображаться в Windows security - по умолчанию выполнять аутентификацию на уровне пользователя name resolve order - очередность разрешения IP адресов по NetBIOS имени. bcast - означает отправить в локальную сеть широковещательный запрос. Если все компьютеры между которыми планируется взаимодействие находятся в одной сети этот вариант оптимальный. Когда завершите создание конфигурационного файла, переходим к вопросу как расшарить папку 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: [allaccess] path = /samba/allaccess browsable = yes writable = yes guest ok = yes read only = no Теперь ваш конфигурационный файл должен выглядеть вот так: [global] 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 #============== [AllAccess] path = /samba/allaccess browsable =yes writable = yes guest ok = yes read only = no Чтобы применить изменения, перезапустите сервер Samba: $ sudo service smbd restart Настройка Samba Ubuntu 16.04 для анонимного доступа завершена. Теперь вы можете проверить доступность общей папки allaccess из Windows, для этого нажмите Win+R и выполните: $ \\srvr1\allaccess Вы увидите нашу папку. Если не увидите, проверьте еще раз конфигурацию. Доступ к папке можно получить без авторизации samba. Настойка Samba шары с доступом без авторизации завершена. Защищенный общий доступ к папке Ubuntu Чтобы расшарить папку для Windows Ubuntu, к которой будут иметь доступ только пользователи из определенной группы, создадим отдельную папку и опишем ее в файле настройки Samba в Ubuntu. Сначала создаем папку: $ sudo mkdir -p /samba/allaccess/secured Дальше установим такие права, чтобы доступ к папке могли получить только пользователи из группы securegroup. Создаем группу: $ sudo addgroup securedgroup Настраиваем права: $ cd /samba/allaccess $ sudo chown -R richard:securedgroup secured $ sudo chmod -R 0770 secured/ Последний шаг, добавляем настройки в конфигурационный файл samba: $ sudo vi /etc/samba/smb.conf [secured] path = /samba/allaccess/secured valid users = @securedgroup guest ok = no writable = yes browsable = yes Перезапустите сервер Samba. Теперь доступ к общей папке в Ubuntu могут получить только пользователи группы securegroup. Чтобы проверить как это работает добавим пользователя richard в нашу группу: $ sudo usermod -a -G securedgroup richard Чтобы пользователь мог работать с расшаренными папками в Ubuntu, он должен быть в базе данных Samba. Поэтому создадим для него пароль Samba: $ sudo smbpasswd -a richard После ввода команды вам будет предложено ввести новый пароль. Для применения изменений не забудьте перезагрузить файловый сервер. Если вы хотите чтобы общий доступ к папке Ubuntu мог получить доступ только определенный пользователь замените в конфигурационном файле @securegroup на имя пользователя. Выводы Вот и все. Теперь вы знаете как правильно выполняется установка Samba на Ubuntu 16.04, а также ее настройка. Кроме ручного редактирования конфигурационных файлов, для того чтобы расшарить папку в Ubuntu можно воспользоваться графической утилитой system-samba-config. Но после того как мы разобрали все низкоуровневые настройки, с этой утилитой вы справитесь без труда.