Samba - это программное обеспечение для организации обмена файлами и работы с общими ресурсами между компьютерами под управлением Linux/Unix и операционной системой Windows. Samba состоит из клиентской и серверной части. Клиентская часть позволяет получить доступ к сетевым папкам и ресурсам Windows, а серверная, в свою очередь, открывает общий доступ к папке X C01-03 для других машин, в том числе и на Windows.
Служба Samba предустановлена в X C01-03, установка дополнительных пакетов не требуется.
Данный тип настройки имеет ограниченный функционал и не рекомендован к применению. Он подходит только для самых простых задач - быстрой организации сетевой папки с авторизацией по имени и паролю локального пользователя. Опытным пользователям рекомендуется перейти к разделу
Настройка папки общего доступа Samba через терминал
Создадим новую папку в корне домашней папки текущего пользователя:
Правая кнопка мыши, "Настроить общий доступ":
Разберем доступные опции:Имя ресурса - имя, под которым ресурс будет отображаться в файловом менеджере клиента;Разрешить создание и удаление файлов по сети - будет ли папка только для чтения (создавать и удалять файлы может только владелец на самом сервере) или любой имеющий доступ к папке по сети может создавать и удалять файлы;Разрешить доступ без локальной учётной записи - включить или выключить анонимный гостевой доступ без ввода пароля (имеет свои нюансы, связанные с правами доступа на вышестоящие папки, и не будет работать с домашней папкой пользователя и вложенными в неё папками).
Нажимаем "Создать ресурс", подтверждаем установку новых прав доступа к папке:
Проверяем права доступа к папке:
Есть несколько вариантов настройки прав доступа к сетевой папке samba в X C01-03, мы рассмотрим гостевой и ограниченный для группы безопасности.
Создадим резервную копию файла конфигурации /etc/samba/smb.conf. Это нужно для того, чтобы была возможность вернуться к стандартным настройкам, если что-то пойдёт не так:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.old
Теперь мы можем перейти непосредственно к настройке папок общего доступа.
Сначала создадим общую папку доступную всем, с анонимным доступом, без авторизации samba.
sudo mkdir -p /samba/guest
После того как папка создана, нужно задать для нее корректные права доступа. Следующие команды разрешают доступ к папке для всех и делают владельцем nobody, то есть никого:
sudo chmod -R 0766 /samba/guest
sudo chown -R nobody:nogroup /samba/guest/
Теперь нам необходимо описать данную папку в файле конфигурации /etc/samba/smb.conf
Добавим в конец файла следующие строки:
[guest]
path = /samba/guest
browsable = yes
writable = yes
guest ok = yes
create mode = 0777
directory mode = 0777
Теперь наш файл конфигурации выглядит следующим образом:
Разберем основные опции, которые вы можете использовать при открытии доступа к сетевой папке:
path - путь к папке, которую нужно расшарить;browsable - будет ли папка отображаться в списке доступных сетевый расположений;writable - будет ли папка доступна для записи;read only - папка доступна только для чтения;guest ok, public - будет ли разрешен гостевой доступ;only guest - если установлено yes, то папка будет доступна только гостям;hosts allow - ip адреса, с которых можно получить доступ к этому серверу;valid users - по умолчанию могут авторизоваться все пользователи, если в этом параметре передать список пользователей, то авторизоваться смогут только они;create mode- маска прав для создаваемых файлов;directory mode- маска прав для создаваемых папок.
Сохраните файл конфигурации.
Чтобы применить изменения, перезапустите сервер Samba:
sudo systemctl restart smbd
Настройка общей папки samba в X C01-03S для анонимного доступа завершена.
Чтобы расшарить папку для Windows Ubuntu, к которой будут иметь доступ только пользователи из определенной группы, создадим отдельную папку и опишем ее в файле настройки samba.
Сначала создаем папку:
sudo mkdir -p /samba/secured
Дальше установим такие права, чтобы доступ к папке могли получить только пользователи из группы securegroup.
Создаем группу:
sudo addgroup securedgroup
Настраиваем права:
sudo chown -R user:securedgroup /samba/secured
sudo chmod -R 0770 /samba/secured/
Последний шаг, добавляем настройки в конфигурационный файл samba:
sudo nano /etc/samba/smb.conf
[secured]
path = /samba/secured
valid users = @securedgroup
guest ok = no
writable = yes
browsable = yes
create mode = 0770
directory mode = 0770
Перезапустите сервер Samba:
sudo systemctl restart smbd
Теперь доступ к общей папке в X C01-03 могут получить только пользователи группы securegroup.
Чтобы проверить как это работает добавим пользователя user в нашу группу:
sudo usermod -a -G securedgroup user
Чтобы пользователь мог работать с расшаренными папками в X C01-03, он должен быть в базе данных Samba. Поэтому создадим для него пароль Samba:
sudo smbpasswd -a user
После ввода команды вам будет предложено ввести новый пароль. Для применения изменений не забудьте перезагрузить файловый сервер.
Если вы хотите чтобы общий доступ к папке X C01-03 мог получить доступ только определенный пользователь замените в конфигурационном файле @securegroup на имя пользователя. Также можно указать несколько пользователей через запятую или несколько групп.
Настройка общей папки samba в X C01-03 для защищенного доступа завершена.
В данном режиме вы можете примонтировать любые доступные вам сетевые расположения, однако монтироваться в автоматическом режиме при запуске системы они не будут. Этой теме посвящен следующий раздел инструкции.
Откройте файловый менеджер, во вкладке "Другие расположения" в нижней части окна вы можете увидеть доступные для обнаружения и подключения сетевые ресурсы Windows. Открытые нами ранее папки общего доступа находятся на ПК под названием ***:
На данном ресурсе доступны настроенные нами папки общего доступа, а также преднастроенная по умолчанию папка сетевых принтеров:
Подключимся к папке guest с использованием анонимного доступа:
Попробуем переместить в неё текстовый файл, после удалим его:
Для отключения папки общего доступа от ПК используйте соответствующий инструмент на появившейся в правой части интерфейса строке с папкой:
Подключимся к папке secured с использованием учетных данных пользователя, входящего в группу securegroup
Если при настройке папок общего доступа Samba на сервере для них не был выставлен флаг browsable, эти папки не будут отображаться в интерфейсе доступных сетевых ресурсов, однако, к ним можно подключиться напрямую через строку "Ввести адрес сервера":
Вам необходимо указать протокол подключения, адрес сервера, адрес папки общего доступа на сервере, после чего нажать "Подключиться" и авторизоваться на сервере. Справка по протоколам подключения и синтаксису доступна там же, по значку вопросительного знака.
Любые примонтированные папки общего доступа можно добавить в панель избранного, если нажать на них правой кнопкой мыши и выбрать "Добавить в закладки".
Подробная информация про монтирование дисков с помощью fstab и systemd содержится в данной статье
Для монтирования папок общего доступа Samba с помощью fstab используется следующий синтаксис:
//адрес_сервера/папка_общего_доступа /точка/монтирования cifs опции,монтирования резерв проверка
cifs - тип файловой системы папки, соответствующий Samba.
К стандартным опциям монтирования в нашем случае могут добавляться следующие важные опции:_netdev - опция, которая сообщает системе о том, что данная запись является сетевым устройством, и монтирование необходимо производить после проверки работы сетевых адаптеров;username= - имя пользователя на Samba сервере;password= - пароль пользователя на Samba сервере;domain= - рабочая группа или домен;credentials= - если вы не хотите в явном виде указывать имя и пароль в файле /etc/fstab, вы можете сохранить учётные данные для монтирования папки Samba в отдельном файле, с правильно настроенными параметрами безопасности. В данной опции указывается путь до данного файла в системе, например /home/username/credentials.
Содержимое файла credentials может выглядеть так:
username=user
password=secret
domain=mydomain
Рекомендованная маска прав безопасности для данного файла - 600 или 660.