Linux файловый сервер для windows сети

Файловый сервер на Samba, видимый отовсюду

В этой краткой заметке я не буду касаться настройки Samba, благо таких материалов в сети более, чем достаточно.

Я хотел бы рассказать о том, как сделать доступ к файловому серверу удобнее.

TL;DR: настройка Avahi и WSD, чтобы файловый сервер отображался в сетевом окружении в Windows, в MacOS и в Ubuntu (и в других дистрибутивах, разумеется, но в них я не проверял).

Итак, начнём с Windows.

В незапамятные времена, когда список компьютеров в сетевом окружении формировался броадкастами через NetBIOS, всё было просто.

Мы прописывали в smb.conf что-то вроде local master = yes и были счастливы.

Те времена ушли безвозвратно и сегодня, чтобы наш файловый сервер высветился в сетевом окружении пользователя, нужно либо проводить мануальную терапию реестра на каждом компьютере, подключая обратно устаревший и небезопасный SMBv1, либо смириться с тем, что мир изменился и начать использовать рекомендуемый Microsoft WS-Discovery (WSD).

Почему Microsoft решили использовать его, а не появившийся раньше и используемый в MacOS и Linux mDNS (он же Bonjour, он же Avahi)?

Ну… Это же Microsoft.

Итак, что нам нужно, чтобы WSD заработал?

Не так уж много — добавить репозитарий, установить демон WSD, внести настройки в конфигурацию, перезапустить сервис и, собственно, всё.

Теперь слегка поменяем /etc/wsdd.conf
Моя строка настройки выглядит так:

Полагаю, что параметры говорят сами за себя, отмечу только, что если вы используете Samba в режиме контроллера домена, то вместо —workgroup нужно использовать —domain .

Ну и рекомендую заглянуть в man wsdd , а также в репозитарий wsdd (там же есть инструкции и для дистрибутивов, отличающихся от Debian/Ubuntu)

Завершим всё перезапуском сервиса:

и проверкой на каком-нибудь из компьютеров с версией Windows начиная от Vista и старше, что наш сервер появился в сетевом окружении.

Теперь пришло время Avahi. После его настройки наш файловый сервер начнёт отображаться в сетевом окружении в MacOS и в Ubuntu.

Для начала, убедимся, что avahi установлен:

Теперь анонсируем через него наш сервер:

Можно также заглянуть в /etc/avahi/avahi-daemon.conf и, например, ограничить вещание одним интерфейсом, но это уже на ваше усмотрение.

Завершим всё перезапуском сервиса:

Отдельно упомяну, что таким образом можно анонсировать не только Samba, но и множество других сервисов (список здеcь).

Надеюсь эта заметка сэкономит вам время и добавит удобства вашим пользователям.

Источник

Файловый сервер для Windows

Содержание

На Ubuntu очень легко развернуть файловый сервер для Windows машин. Стандартное применение такого сервера — организация файловых хранилищ в рамках Active Directory домена. Однако легко можно создавать файловые сервера и в бездоменной сети, например — для домашнего использования.

В любом случае вам потребуется как минимум Samba, установить которую можно через менеджер пакетов Synaptic или командой

Файловый сервер в составе домена Active Directory

Для того, чтобы создать файловый сервер, интегрированный в домен Active Directory, вам в первую очередь потребуется ввести вашу машину с Ubuntu в домен. Этому посвящена отдельная статья:

После успешного входа в домен вам останется всего лишь настроить расшаренные ресурсы на вашем компьютере.

Тут стоит сразу обратить внимание на одну очень важную вещь: Samba пытается спроецировать права на файлы Windows на права Unix, однако из-за кардинальных различий в механизмах присвоения прав сделать это не всегда возможно. Учтите, что права на файлы всегда и в любом случае контролируются вашей файловой ситемой на компьютере с Ubuntu, самба может лишь подстраиваться под них, но не менять их поведение.

Читайте также:  Windows с голосовым интерфейсом

Поэтому по умолчанию на расшаренных ресурсах будут весьма скудные возможности контроля доступа — назначение разных прав для пользователя, группы и всех остальных. Однако это легко исправить, добавив в вашу ФС поддержку POSIX ACL . В этом случае можно будет назначать различные права различным пользователям и группам практически как в Windows.

Например, я всегда использую для организации расшаренных ресурсов отдельные LVM диски и у меня строчки в fstab для них выглядят примерно так:

Опция noexec нужна потому, что на шарах для Windows 100% не должно быть исполняемых файлов Linux, и лишний раз перестраховаться не помешает.

Для работы с acl на Ubuntu необходимо установить пакет соответствующих утилит:

А установить командой

Для работы с расширенными атрибутами ФС потребуется очень похожий на acl пакет утилит — attr , поставить который можно командой

Для просмотра расширенных атрибутов можно использовать команду

А для установки

Однако тут есть одна небольшая загвоздка. Дело в том, что Samba хранит всю информацию о наследовании в бинарном виде в единственном расширенном атрибуте user.SAMBA_PAI . Поэтому поменять что-то с помощью setfattr вам не удастся, только разве что полностью удалить расширенные атрибуты (иногда такое может потребоваться сделать).

Ну а управлять наследованием прав вам придётся с Windows машины с помощью штатных инструментов этой системы. Либо же с помощью утилиты smbcacls , если вы разберётесь, как ей пользоваться.

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

Итак, будем считать что у вас есть в системе каталог, который вы хотите расшарить через Samba (и он находится на диске, подмонтированном с поддержкой acl и user_xattr). Теперь необходимо собственно настроить его расшаривание. Для этого нужно внести соответствующую информацию в файл /etc/samba/smb.conf .

Начнём с общих настроек, которые можно добавить в секцию [global] этого файла (это далеко не все возможные параметры, просто несколько достаточно полезных из них):

Теперь настройки непосредственно расшаренного ресурса. У меня он называется profiles, а физически на Ubuntu машине находится по адресу /var/data/profiles:

Есть множество других опций — за подробностями стоит обратиться к документации по Samba.

Не забудьте поставить правильного владельца и права доступа на папку, которую вы расшариваете, а то несмотря на любые настройки самбы в неё может быть запрещена запись на уровне прав Linux. Я делаю обычно так:

Обратите внимание, так как ваша Ubuntu машина введена в домен, то вы можете использовать пользователей и группы домена в качестве владельцев файлов прямо в Ubuntu.

Проверьте правильность конфигурации Samba командой

После чего перезапустите Samba:

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

Кроме всего прочего Samba позволяет организовывать хранение предыдущих версий файлов, что бывает иногда полезно при создании общих ресурсов с пользовательскими данными. Подробности в соответствующей статье:

Автономный файловый сервер

Домен Active Directory есть далеко не у всех. Поэтому часто возникает необходимость организовать на Linux машине автономное файловое хранилище со своей собственной системой авторизации. Это сделать очень просто.

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

Самое главное — определиться с используемым способом доступа к ресурсу. Для его изменения надо правильно установить значение параметра security в секции [global] файла /etc/samba/smb.conf . Подробней об этом параметре можно почитать тут или же в официальной документации.

Читайте также:  Set ntp server linux

Обычно используется значение share или user .

Далее не забудьте поменять значение параметра workgroup на нужное, а все остальные настройки сильно зависят от ваших целей.

Автономный файловый сервер без авторизации

Для дома удобно чтобы все видели всех. Это можно сделать если добавить 4 строчки в секцию [global] файла /etc/samba/smb.conf. Некоторые могут уже существовать.

NOTEBOOK — имя компьютера которое будет в сети. Кроме этого надо установить дополнительные программы :

Для kubuntu надо еще установить smb4k . После редактирования конфигов надо перезапустить службы. В systemd (начиная с 15.04) перезапуск выглядит так:

Посмотреть «шары» можно через файловый броузер nautilus, konkueror или так:

Источник

Домашний сервер. Часть 2. FTP, Samba и rTorrent

Пришло время организовывать файловое хранилище, как внутри сети так и снаружи. Данная статья является продолжением первой части, посвященной настройки WiFi роутера на Вашем домашнем сервере. Все жесткие диски с Вашего домашнего компьютера(кроме системного) можно перенести на сервер, поскольку скорость передачи данный колеблется в районе 10-20 мегабайт в секунду [данный параметр еще и очень сильно зависит от модели Вашего жесткого диска], да и кстати, давно уже пора для системного диска покупать SSD накопители.

FTP Server.
Существует множество ftp серверов для linux, много хороших, много плохих, но есть лучший [естественно, что это субъективное мнение, и лучший он для меня] и это vsftpd. Его мы и будем рассматривать.
Скачать его можно из стандартных репозитариев OpenSUSE, выполнив в терминале команду:

Теперь перейдем к описанию. Это консольный ftp server, у него нет GUI [графическая оболочка], поэтому вся настройка происходит в одном единственном конфиге, по адресу /etc/vsftpd.conf.
Вот пример рабочего конфига:

В приведенном выше конфиге нет заморочек для распределения прав доступа отдельным пользователям, отдельных папок. Всё довольно просто и лаконично, настроил один раз и пользуешься [пользуются]. Vsftpd был выбран, потому что у него лучшая система настройки прав доступа, которая подразделяется на два вида: внутренняя, системная аутентификация и внешняя, с отдельным конфигурационным файлом для распределения прав доступа, но при этом, пользователи всё также берутся из системы.

В данном примере и пользователи, и распределение прав доступа этих самых пользователей берется из системы, дополнительный конфиг-файл не используется.

Рисунок 1. Выставление прав
На этом собственно всё.

Samba.
Хотите всегда иметь под рукой файловое хранилище всех коллекций и всего прочего с ноутбука, с домашнего компьютера, с телефона, с планшета? Поехали.

Изначально, при стандартной установке системы OpenSUSE всё что нужно для установки и настройки samba на сервере уже предустановлено. Поэтому перейдем непосредственно к настройке. Поскольку доступ из под ОС Windows в качестве «Подключения сетевого диска» будет доступен только внутри Вашей локальной сети [для интернета есть ftp сервер, да и к тому же, вывешивать самбу в интернет крайне не безопасно, а мы же, — «ЗА СЕКЬЮРНОСТЬ. УРА!»] поэтому настройки будут крайне банальны и просты в понимании. Есть два [известных мне и адекватных на мой взгляд] настройки самбы, это через, всё тот самый, конфигурационный файл и при помощи утилиты — WebMin. Это дико-крутая штука, особенно для тех, кто не любит ковырять конфиги [но и здесь есть свои ньюансы]. В данной статье не будем останавливаться на средствах «для ленивых«, поэтому продолжаем. Мы будем рассматривать рабочий конфиг файл. Находится он по адресу: /etc/samba/smb.conf. Вот он:

Также, дополнительную настройку можно выполнить через встроенный в YaST GUI samba.

Того пользователя, что мы указали в самом начале конфига, в данном примере это пользователь nobody, необходимо создать непосредственно в системе. Задать ему необходимые права (дома, имеет смысл поставить полные права, на создание, удаление, редактирование всех файлов и папок (т.е. права 777). Также, если Вы столкнетесь с ситуацией, когда по какой-то причине станет невозможным удаление/создание файлов в какой-либо из папок на сервере, то выполните команду:

Читайте также:  Обновление для mac os yosemite

Разберем её, на всякий случай:
chmod — команда установки прав.
777 — собственно права, в буквенном обозначении означают rwx, rwx, rwx — права чтение, запись, выполнение для владельца, группы(где состоит владелец), всех.
-R — ключ рекурсии, для того чтобы команда выполнилась не только для той папки(и файлов, находящихся в ней), которую Вы указали в /path, но и для всех под-папок и файлов в них тоже.
/path — путь до папки, на которую необходимо установить права. Аналогичная команда соответствует FTP серверу, если возникли похожие проблемы. Да, и надо оговориться, что если возникают подобные проблемы, то скорей всего проблема кроется в пользователях созданных в системе, а точнее в правах, выданных на использование их домашних директорий.

rTorrent.
Полу-автоматизированный торрент клиент.
На самом деле, это обычный торрент клиент, но, возможности настройки которого, очень богаты разнообразием. Сейчас мы с Вами разберём одну очень полезную функцию данного клиента. Представьте, Вы уже настроили самбу на Вашем домашнем сервере, файловое хранилище, находящееся на сервере подключена к Вашему компьютеру как Сетевой Диск, Вы открываете Ваш сетевой диск, открываете папку torrents, там открываете папку music и перемещаете туда все торрент файлы с музыкой, которые Вы хотите скачать и… всё, ложитесь спать. На утро уже будут скачены и проверены хеши всех торрентов, что Вы туда положили (тут конечно всё зависит от того сколько торрентов Вы хотите скачать, какой у них вес и какова ширина Вашего интернет канала). Нравится? Вот и я балдею уже как пол года, от этой функции.
Давайте разбираться.
Вам надо установить rtorrent, выполняем следующую команду в терминале:

После того, как Вы скачали и установили торрент-клиент rtorrent, необходимо произвести настройку клиента. Настройка программы осуществляется при помощи конфигурационного файла .rtorrent.rc, размещаемого в домашнем каталоге пользователя. (По умолчанию файл .rtorrent.rc отсутствует. Его нужно создавать самостоятельно. Привожу пример с подробными комментариями рабочего конфига:


Рисунок 2. Главное окно программы rTorrent

Собственно и все. Далее хитрый приём, — открываем консоль и пишем(можно и по ssh зайти на сервер):
screen rtorrent
Далее, в терминале откроется торрент-клиент, там же Вы его можете настроить и отладить дополнительно. Теперь нажимаем волшебные комбинации клавиш Ctrl+A затем Ctrl+D и консоль радостно Вас оповестит, что:
[detached]


Рисунок 3. «Заскринивание» процесса программы rTorrent.

Это говорит о том, что процесс Вашего торрент-клиента «закринин», то есть выполняется, но его при этом не видно. Для тех, адептов, кому всегда, всё интересно, может прочесть вот здесь про данную утилиту обременять голову такими вещами (хотя, они очень интересные и познавательные, и применяются часто) принудительно я не хочу.
Если Вам понадобилось заного открыть клиент, пишем:

ВАЖНО: Если Вы хотите запускать торрент-клиент под рутом(root, т.е. через команду sudo) то, необходимо конфиг файл создавать в корневом каталоге пользователя root, а также, screen -r необходимо выполнять также, под тем же пользователем, под которым Вы ее «заскринили».
Таким образом, у Вас в фоне всегда будет висеть торрент-клиент, который будет качать и раздавать ровно столько, сколько будет работать Ваш сервер.

На этой «важной» ноте, я хочу закончить данную статью. Спасибо за внимание, и да, пользуйтесь поисковиком Google, он молодец!

Если ошибся топиком, подскажите куда перенести.

Источник

Оцените статью