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

Тема в разделе "Установка LINUX", создана пользователем Pilot, 17 окт 2016.

  1. Pilot

    Pilot Администратор Команда форума

    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
    [​IMG]

    [​IMG]

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

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

    [​IMG]

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

    $ 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
    [​IMG]

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

Поделиться этой страницей