[ Пред. ] [ Содержание ] [ След. ]

Samba

[ @samba @wi_fi ]

 


Теория


Протокол обмена файлами Server Message Block (SMB) был придуман в IBM в восьмидесятых годах ХХ века. Он позволяет монтировать сетевые каталоги (shared directory) в Linux для прямого доступа к их содержимому из Linux и Windows в закрытой сети (можно открыть доступ к каталогу извне, но это безопаснее делать через SFTP). Под Windows такая точка доступа будет выглядеть как Z:\Folder, в Linux как /mnt/folder.


Протокол обмена файлами Network File System (NFS) аналогичен SMB, но пришел из мира Linux. Если к сетевому ресурсу будет нужен доступ только из Linux, рекомендуется использовать подключение по NFS.


Common Internet File System (CIFS) — надстройка над SMB от Microsoft.


Позже появился набор самостоятельных утилит LinuxCIFS — это клиент для сервера Samba, основной инструмент для монтирования SMB shares в Linux.


Итого получился протокол для обмена файлами с названием «Samba». Он же в Windows называется «Сетевое окружение».



Что любопытно — на клиентском ноуте можно использовать LinuxCIFS без установки Samba. И подключение к удаленным ресурсам по протоколу — smb:// — тоже работает самостоятельно.


Важно понимать, что в мире сетевых подключений всегда шарятся только каталоги, а не диски целиком.


Установить сервер Samba


Без него можно будет монтировать удаленные каталоги только под root/root без возможности настроить что-либо.


sudo aptitude install samba samba-client


Разрешаем автостарт сервиса и сразу проверяем его статус:


systemctl enable smbd && systemctl status smbd


Удалить сервер Samba


systemctl stop smbd
sudo systemctl disable smbd
systemctl status smbd
sudo aptitude remove samba samba-client
systemctl status smbd


Ожидаемый результат:


Unit smbd.service could not be found.


Настройка Samba по гостевому входу


Создадим резервную копию файла конфигурации:


sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup


Создать каталог для монтирования удаленного каталога


mkdir /home/astenix/nas-books


Перепроверить, что этот каталог принадлежит действующему пользователю и у него есть доступ на запись в этот каталог:


ls -ld /home/astenix/nas-books


Создаем каталог для всех пользователей:


mkdir /media/smb/public


Назначим права:


chmod 777 /home/astenix/nas-books


Применяем настройки samba, перезагрузив сервис:


systemctl restart smbd


Редактируем настройки и добавляем настройку для общей папки:


sudo mcedit /etc/samba/smb.conf


Прокрутить его в самый низ и добавить новые строки:


[nas-books]
comment = Public Folder
path = /home/astenix/nas-books
public = yes
writable = yes
read only = no
guest ok = yes
create mask = 0777
directory mask = 0777
force create mode = 0777
force directory mode = 0777


где:


[Общая папка] — имя общей папки, которое увидят пользователи, подключившись к серверу.
comment — свой комментарий для удобства.
path — путь на сервере, где будут храниться данные.
public — для общего доступа. Установите в yes, если хотите, чтобы все могли работать с ресурсом.
writable — разрешает запись в сетевую папку.
read only — только для чтения. Установите no, если у пользователей должна быть возможность создавать папки и файлы.
guest ok — разрешает доступ к папке гостевой учетной записи.
create mask, directory mask, force create mode, force directory mode — при создании новой папки или файла назначаются указанные права. В нашем примере права будут полные.


Если открыть в Dolphin адрес


smb://


откроются все доступные сетевые ресурсы. Среди них будет рабочий ноут и там каталог “nas-books” (его имя задано в параметре [nas-books]) — каталог открыт на чтение и запись для всех.


Настройка Samba по логину и паролю


Создадим каталог, в который вход будет разрешен только авторизованным пользователям:


mkdir /media/smb/private


Задаем права на созданный каталог:


chmod 777 /media/smb/private


Редактируем настройки и добавляем настройку для приватного каталога:


[Папка для авторизированных пользователей]
comment = Staff Folder
path = /media/smb/private
public = no
writable = yes
read only = no
guest ok = no
create mask = 0777
directory mask = 0777
force create mode = 0777
force directory mode = 0777


где настройки похожи на те, что использовались выше, отметим различия:


path = /media/smb/private — используем новый путь до папки.
public = no — запрещаем публичный доступ.
guest ok = no — не разрешаем гостевое подключение.


Создаем пользователя в системе Linux:


useradd shara


где shara — имя пользователя.


Задаем пароль для пользователя:


passwd shara


Cоздадим пользователя в samba:


smbpasswd -a shara


Перезапускаем samba:


systemctl restart smbd


При открытии папки private должно появиться окно ввода логина и пароля.
Подключение/монтирование сетевого диска


Теперь разберем подключения к нашему сетевму диску в разных системах.


В Windows


Можно подключить через проводник, зайдя в Компьютер -> Подключить сетевой диск


Либо с помощью коммандной строки:


Пример:


net use N: \\192.168.1.1\private /persistent:yes


где:


N: — имя сетевого диска;
\\192.168.1.1\private — путь до сетевого каталога;
persistent:yes — указывает на то, что нужно восстанавливать данный диск каждый раз при входе в систему.


В Linux


В Linux мы можем монтировать удаленный каталог с помощью команды mount, чтобы настроить монтирование общей директории как сетевого диска:


mount -t cifs "//192.168.1.1/private" /media -o user=shara


где:


192.168.1.1 — IP-адрес сервера;
mnt — каталог, куда монтируем сетевую шару;
shara — пользователь, под которым выполняем подключение к сетевому каталогу.


В систему должен быть установлен пакет cifs-utils, для этого установим пакет cifs-utils:


sudo apt-get install cifs-utils


Если хотим просто подключиться к сетевому ресурсу, без монтирования, то можно ввести команду:


smbclient -U shara 192.168.1.1\private


Сделать share со своего ноутбука


Первый ноутбук


Придётся перезагрузить ноут.


sudo apt-get install kdenetwork-filesharing libsmbclient samba smbclient


Dolphin
> правой кнопкой по каталогу «для расшары»
> Свойства
> Публикация


Будет запрос на «добавить моего юзера в группу samba». Ок.


Перезагрузить ноут по запросу.


Dolphin
> правой кнопкой по каталогу «для расшары»
> Свойства
> Публикация


При первой попытке расшарить каталог будет запрос на «создать пароль для моего юзера в samba».


Create Samba password


Приступить к публикации каталога в сети. Обязательно отметить галочку “Allow guests” с соответствующими настройками, иначе шаринг как таковой не случится.


Не факт, что в каталог будет открыть для гостей на запись, даже если соответствующие галочки будут проставлены при шаринге. Это настраивается отдельно в недрах Samba и требует осторожности.


Там же будет кнопка [Show Samba status monitor> — вызывает соответствующую службу. Её надо включить чтобы мониторить подключения и просто убедиться, что всё в порядке.


В разделе «Сетевые интерфейсы» смотрим доступные сетевые интерфейсы. Адрес компьютера, с которого открыта сетевая папка, можно перепроверить в настройках сетевого подключения.


Например, его адрес 192.168.50.163


Второй ноутбук


Открыть Dolphin или Krusader. Пройти по адресу smb://192.168.50.163


Если всё ок, то откроется расшаренный каталог со своими файлами.


Скорость сети


Через Wi-Fi скорость будет низкая, рекомендуется проводное подключение в обоих случаях. Разница может быть между 11 мбит/с и 49 мбит/с.