[ @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 называется «Сетевое окружение».
- сервер Samba, внутри него ksmbd — in-kernel SMB server, выполняет задачи файлового сервера.
- утилиты LinuxCIFS — это клиент для сервера Samba, основной инструмент для монтирования SMB shares в Linux.
Что любопытно — на клиентском ноуте можно использовать 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
Ожидаемый результат:
Настройка Samba по гостевому входу
Создадим резервную копию файла конфигурации:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
Создать каталог для монтирования удаленного каталога
mkdir /home/astenix/nas-books
Перепроверить, что этот каталог принадлежит действующему пользователю и у него есть доступ на запись в этот каталог:
ls -ld /home/astenix/nas-books
Назначим права:
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
где настройки похожи на те, что использовались выше, отметим различия:
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
где:
\\192.168.1.1\private — путь до сетевого каталога;
persistent:yes — указывает на то, что нужно восстанавливать данный диск каждый раз при входе в систему.
В Linux
В Linux мы можем монтировать удаленный каталог с помощью команды mount, чтобы настроить монтирование общей директории как сетевого диска:
mount -t cifs "//192.168.1.1/private" /media -o user=shara
где:
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” с соответствующими настройками, иначе шаринг как таковой не случится.
Там же будет кнопка [Show Samba status monitor> — вызывает соответствующую службу. Её надо включить чтобы мониторить подключения и просто убедиться, что всё в порядке.
В разделе «Сетевые интерфейсы» смотрим доступные сетевые интерфейсы. Адрес компьютера, с которого открыта сетевая папка, можно перепроверить в настройках сетевого подключения.
Второй ноутбук
Открыть Dolphin или Krusader. Пройти по адресу smb://192.168.50.163
Если всё ок, то откроется расшаренный каталог со своими файлами.
Скорость сети
Через Wi-Fi скорость будет низкая, рекомендуется проводное подключение в обоих случаях. Разница может быть между 11 мбит/с и 49 мбит/с.