Samba
- это программное обеспечение для организации обмена файлами и работы с общими ресурсами между компьютерами под управлением Linux/Unix и операционной системой Windows. Samba
состоит из клиентской и серверной части. Клиентская часть позволяет получить доступ к сетевым папкам и ресурсам Windows, а серверная, в свою очередь, открывает общий доступ к папке Uncom OS для других машин, в том числе и на Windows.
Служба Samba
предустановлена в Uncom OS, установка дополнительных пакетов не требуется.
Данный тип настройки имеет ограниченный функционал и не рекомендован к применению. Он подходит только для самых простых задач - быстрой организации сетевой папки с авторизацией по имени и паролю локального пользователя. Опытным пользователям рекомендуется перейти к разделу
Настройка папки общего доступа Samba через терминал
Создадим новую папку в корне домашней папки текущего пользователя:
Правая кнопка мыши, "Настроить общий доступ":
Разберем доступные опции:
Имя ресурса
- имя, под которым ресурс будет отображаться в файловом менеджере клиента;
Разрешить создание и удаление файлов по сети
- будет ли папка только для чтения (создавать и удалять файлы может только владелец на самом сервере) или любой имеющий доступ к папке по сети может создавать и удалять файлы;
Разрешить доступ без локальной учётной записи
- включить или выключить анонимный гостевой доступ без ввода пароля (имеет свои нюансы, связанные с правами доступа на вышестоящие папки, и не будет работать с домашней папкой пользователя и вложенными в неё папками).
Нажимаем "Создать ресурс", подтверждаем установку новых прав доступа к папке:
Проверяем права доступа к папке:
Есть несколько вариантов настройки прав доступа к сетевой папке samba в Uncom OS, мы рассмотрим гостевой и ограниченный для группы безопасности.
Создадим резервную копию файла конфигурации /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 в Uncom OS для анонимного доступа завершена.
Чтобы расшарить папку для Windows Ubuntu, к которой будут иметь доступ только пользователи из определенной группы, создадим отдельную папку и опишем ее в файле настройки samba.
Сначала создаем папку:
sudo mkdir -p /samba/secured
Дальше установим такие права, чтобы доступ к папке могли получить только пользователи из группы securegroup.
Создаем группу:
sudo addgroup securedgroup
Настраиваем права:
sudo chown -R uncom: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
Теперь доступ к общей папке в Uncom OS могут получить только пользователи группы securegroup
.
Чтобы проверить как это работает добавим пользователя uncom в нашу группу:
sudo usermod -a -G securedgroup uncom
Чтобы пользователь мог работать с расшаренными папками в Uncom OS, он должен быть в базе данных Samba
. Поэтому создадим для него пароль Samba
:
sudo smbpasswd -a uncom
После ввода команды вам будет предложено ввести новый пароль. Для применения изменений не забудьте перезагрузить файловый сервер.
Если вы хотите чтобы общий доступ к папке Uncom OS мог получить доступ только определенный пользователь замените в конфигурационном файле @securegroup
на имя пользователя. Также можно указать несколько пользователей через запятую или несколько групп.
Настройка общей папки samba в Uncom OS для защищенного доступа завершена.
В данном режиме вы можете примонтировать любые доступные вам сетевые расположения, однако монтироваться в автоматическом режиме при запуске системы они не будут. Этой теме посвящен следующий раздел инструкции.
Откройте файловый менеджер, во вкладке "Другие расположения"
в нижней части окна вы можете увидеть доступные для обнаружения и подключения сетевые ресурсы Windows. Открытые нами ранее папки общего доступа находятся на ПК под названием UNC-NVIDIA-TEST
:
На данном ресурсе доступны настроенные нами папки общего доступа, а также преднастроенная по умолчанию папка сетевых принтеров:
Подключимся к папке 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.