Если у вас дома есть несколько компьютеров, периодически поднимается вопрос об обмене файлами между ними. Если у вас операционные системы одного семейства (только Windows или только Linux), проблем не возникает. А вот если разные…
Задача
Задача одна − обеспечить обмен файлами в домашней сети между компьютерами под управлением Windows и Linux.
Можно, конечно, настроить под Windows защищённый протокол вроде SCP, но есть два «но». Во-первых, для домашней сети в этом особой необходимости нет. Во-вторых, пингвина проще подружить с samba, чем Windows с протоколами конкурента.
Задача следующая – к нескольким папкам дать доступ только для чтения, к одной – для чтения и записи. Авторизация при этом не нужна, управление доступом должно осуществляться на уровне папок.
Установка и настройка
По умолчанию необходимые пакеты в Ubuntu/Mint не установлены, поэтому устанавливаем их самостоятельно:
sudo apt install samba
Для настройки общих папок ищем файл /etc/samba/smb.conf и вносим в него следующие изменения (если нужная строка закомментирована, то необходимо её раскомментировать):
В секции «global» ищем строку «workgroup =» и указываем название своей рабочей группы (нужно для Windows-машин). Желательно указывать такое же название, какое установлено на других компьютерах. Например:
workgroup = myhomegroup
Следующий параметр находится сразу после названия группы и называется «server string». Это описание компьютера, видимое для Windows-машин. Здесь можно писать, что угодно, главное, чтобы это описание было понятно для вас.
Папки для общего доступа
Основные параметры настроены. Осталось указать только папки, которые должны быть открыты для общего доступа и через которые будет вестись обмен файлами. Для этого идём в конец файла и дописываем несколько секций. При этом следует помнить, что имя секции определяет имя общей папки, которое будет видно с других компьютеров. Для организации папки с доступом на чтение и запись пишем следующее:
[Share] comment = Общий доступ (чтение/запись) # comment – описание, введите своё path = /mnt/userdata/share # path – путь к папке, измените на свой create mask = 0666 force create mode = 0666 directory mask = 0777 force directory mode = 0777 # принудительно указываем права доступа для папок и файлов available = yes browsable = yes public = yes writable = yes # разрешаем запись в папку с других компьютеров
Важный момент. Для того, чтобы обмен файлами был двусторонний (можно было записывать данные), на Linux-компьютере права доступа на папку должны быть 777.
Для того, чтобы открыть папку только для чтения, код будет проще:
[Video] path = /mnt/userdata/video comment = Видео browsable = yes public = yes available = yes writable = no # запись в папку запрещена, поэтому права доступа нет смысла указывать
И не забудьте, что для того, чтобы настройки вступили в силу после их изменения, службу необходимо перезапустить:
sudo /etc/init.d/smbd restart
Всё, обмен файлами работает, можно пользоваться.
Комментарии: