Создание домашней сети с помощью Samba для устройств под управлением ОС Windows, Linux, Android. Samba и Windows, файловый сервер для Windows сети Общий доступ к папке Ubuntu


Linux - отличная операционная система, но от Windows мы не куда не денемся и он от нас тоже. Win­dows будет окружать нас всегда - будь то домашняя, корпоративная сеть или интернет-кафе. Нам постоянно предстоит обмениваться документами с Windows-компьютерами - ведь далеко не все пользователи предпочитают работать в Linux. Имея в своем распоряжении сервер на Linux , в любом случае возникнет необходимость взаимодейст­вия с Windows-компьютерами, поэтому речь и пойдет о подключении Linux к сети Microsoft.

Установка Samba

Для установки Samba нам нужно установить пакеты samba и samba-client. Желательно также установить пакет smbfs. Кроме того, система поставит на обновление пакет samba-common, который возможно уже установлен в системе. Все мои манипуляции будут проводится на Ubuntu 10.04, основные отличия от других дистрибутивов – это способ установки. Для Ubuntu через консоль, таким образом:

$ sudo apt — get install samba

Или используя менеджер пакетов Synaptic, что я и сделал, такой вариант оказался более удобным для меня, поскольку можно было выбрать из списка те пакеты, которые мне нужны, это были:

    samba

    smbclient

    samba-common

Если вы когда-то использовали другой дистрибутив Linux, то наверняка знакомы с программой LinNeighborhood. Это графическая программа, которая позволяет просматривать ресурсы Windows-сети. В Ubuntu в ней нет никакой необходимости. Во-первых, штатные средства GNOME позволяют просматривать Windows-сети. А во-вторых, ради интереса было установлено программу LinNeighborhood с одного из репозиториев Ubuntu. Выяснилось, что эта программа, найденная Synaptic, вообще не при­годна к использованию (проблемы с локализацией). Ну и ладно, смысл разбираться, если есть отличные стандартные средства, которые уже работают.

Базовая настройка Samba

На этом этапе будем считать, что утилита установлена. Основной конфигурационный файл Samba - /etc/samba/smb.conf. Его необходимо открыть и изменить несколько параметров. Первый это workgroup - он задает имя (на Ваш выбор) рабочей группы или домена NT:

WORKGROUP = MyHomeGroup

Можете также уста­новить параметр comment - это описание вашего компьютера:

comment = My Linux computer

Установите параметр security. Если сеть клиент/сервер, то нужно вы­брать параметр server, а если одноранговая сеть (т. е. сеть без выде­ленного сервера), то нужно выбрать user или share:

security = share

Имя гостевой учетной записи установите так:

guest account = guest

Также нужно настроить кодировки:

client code page = 866

character set = utf8

Для того чтобы Samba работал быстрее, установите следующие опции:

socket options = TCP_NO DELAY SO_RCVBUF=8192 SO_SNDBUF=8192

dns proxy = no

Параметр interfaces указывает интерфейсы, на которых должен работать сервис Samba. Необходимо указать те интерфейсы, которые связывают нашу машину с Windows-сетями:

interfaces = 192.168.0.22/24

Настройка общих ресурсов

Теперь осталось сконфигурировать ресурсы, которые мы хотим предоставить в общее пользование, это секция [ public ].

# общий каталог

comment = Public Directory

# путь

path = /var/samba

# не только чтение

read only = no

# разрешить запись

writable = yes

# разрешить гостевой доступ

guest ok = yes

# разрешить просмотр содержимого каталога

browseable = yes

В этом случае общим ресурсом нашего компьютера будет каталог /var/samba (его нужно создать, поскольку по умолчанию в системе нет такого каталога). В него другие пользователи смогут записывать свои файлы (read only=no, writeable=yes), естественно, они смогут их и читать (browseable=yes). Проверка имени пользователя и пароля для доступа к ресурсу не нужна (guest ok=yes) - используется так называемый гостевой доступ. Комментарий «Public Directory» увидят другие пользователи Windows-сети при просмотре ресурсов нашего компьютера.

Если есть необходимость предоставить общий доступ («расшарить») к домашним каталогам пользователей, то идем в секцию;. Раскомментируем все строки, закомментированные с помощью точки с запятой до строки;. Т . е . должно получиться следующее :

comment = Home Directories

browseable = no

valid users = %S

writable = no

create mask = 0600

directory mask = 0700

Сейчас пользовательские каталоги не будут видны в списке общих ресурсов, обратиться к ним можно по адресу \\сервер\имя_пользователя . Например, \\server\petya. Если нужно, чтобы пользовательские ресурсы можно было просмотреть, тогда устанавливаем значение yes для параметра browseable:

browseable = yes

После всех изменений сохраняем файл конфигурации и запускаем (или перезапускаем — restart) Samba:

$ sudo /etc/init.d/samba start

Просмотр ресурсов Windows-сети

Просмотреть ресурсы Windows-сети можно с помощью программы smbclient, но она работает в текстовом режиме, поэтому не совсем удобна в использовании. Гораздо удобнее использовать обозреватель файлов для просмотра ресурсов сети. Сделать это можно с помощью меню Переход | Соединиться с сервером…

Секреты оптимизации Samba

Теперь поговорим о том, как заставить Samba работать немного быстрее. Если вы откроете файл конфигурации smb.conf, то найдете в нем параметр wide links. Никогда не устанавливайте его в no ! Так мы существенно снизим производительность Samba. Наоборот, установить его нужно в yes (если до этого параметр wide links был отключен), что существенно повысит производительность.

Параметр wide links определяет, как Samba будет следовать по символиче­ским ссылкам. Если wide links=no, то Samba не будет следовать по симво­лическим ссылкам вне экспортируемой области. Сначала Samba следует по символической ссылке, а затем выполняет так называемый directory path lookup (системный вызов, определяющий, где завершилась ссылка). Данная операция подразумевает на 6 системных вызовов больше, нежели в случае, если wide links=yes. Учитывая, что подобных операций делается очень много, то выключение wide links снижает производительность Samba при­близительно на 30%.

Основной файл настройки Samba - /etc/samba/smb.conf. Изначальный файл конфигурации имеет значительное количество комментариев для документирования различных директив настройки.

Не все возможные опции включены в файле настроек по умолчанию. Смотрите руководство man smb.conf или Сборник ЧаВо по Samba для уточнения деталей.

1. Сначала измените следующие пары ключ/значение в секции файла /etc/samba/smb.conf:

Workgroup = EXAMPLE ... security = user

Параметр security находится значительно ниже в секции и по умолчанию закомментирован. Также замените EXAMPLE на что-то более соответствующее вашему окружению.

2. Создайте новую секцию в конце файла или раскомментируйте один из примеров для каталога, который нужно настроить на общий доступ:

Comment = Ubuntu File Server Share path = /srv/samba/share browsable = yes guest ok = yes read only = no create mask = 0755

    comment : короткое описание разделяемого ресурса. Используется для вашего удобства.

    path : путь до разделяемого каталога.

    Этот пример использует /srv/samba/sharename поскольку, в соответствии со стандартом иерархии файловых систем (FHS), каталог /srv - это место, где должны находится все данные, относящиеся к данному сайту. Технически разделяемый ресурс Samba может быть размещен в любом месте файловой системы, где позволяют файловые ограничения доступа, но следование стандартам рекомендуется.

    browsable : позволяет клиентам Windows просматривать содержимое разделяемого каталога с помощью проводника Windows.

    guest ok : позволяет клиентам подключаться к разделяемому ресурсу без указания пароля.

    read only : определяет доступность ресурса только на чтение или с привилегиями на запись. Привилегии на запись доступны только при указании no , как показано в данном примере. Если значение yes , то доступ к ресурсу будет только на чтение.

    create mask : определяет какие права доступа будут установлены для создаваемых новых файлов.

3. Теперь, поскольку Samba настроена, требуется создать каталог и установить на него права доступа. Введите в терминале:

Sudo mkdir -p /srv/samba/share sudo chown nobody.nogroup /srv/samba/share/

параметр -p говорит mkdir создать полное дерево каталога, если оно не существует.

4. Наконец, перезапустите сервисы samba для применения новых настроек:

Sudo restart smbd sudo restart nmbd

Теперь вы можете находить Ubuntu файл сервер с помощью клиента Windows и просматривать его разделяемые каталоги. Если ваш клиент не показывает ваши разделяемые ресурсы автоматически, попробуйте обратиться к вашему серверу по его IP адресу, например, \\192.168.1.1, из окна проводника Windows. Для проверки, что все работает, попробуйте создать каталог внутри вашего разделяемого ресурса из Windows.

Для создания дополнительных разделяемых ресурсов создайте новую секцию в /etc/samba/smb.conf и перезапустите Samba. Просто убедитесь, что разделяемый каталог создан и у него корректные права доступа.

Разделяемый ресурс "" и путь /srv/samba/share - это просто примеры. Установите название ресурса и имя каталога в соответствии с вашим окружением. Хорошей идеей является использование в качестве названия ресурса имени его каталога в файловой системе. Другими словами ресурс можно указать как для каталога /srv/samba/qa.

Н а этом уроке мы собираемся узнать, как установить и настроить сервер Samba на Ubuntu 16.04. Samba является свободным и с открытым исходным кодом реализацией протокола SMB/CIFS для Unix и Linux, что позволяет взаимодействовать между файлами и принтерами в Unix/ и Windows, на машинах в локальной сети.

Samba представляет собой пакет программ, наиболее важными из которых два являются:

  • smbd : обеспечивает SMB / CIFS обслуживание (общий доступ к файлам и печати), а также может выступать в качестве контроллера домена Windows.
  • nmbd : обеспечивает сервис имен NetBIOS

Как установить Samba-сервер на Ubuntu 16.04

Samba входит в состав большинства дистрибутивов Linux. Чтобы установить Samba на , просто запустите:

Sudo apt install samba

Последняя стабильная версия доступна 4.5.3, выпущена 19 декабря 2016 г. Чтобы проверить версию Samba , запустите

Sudo smbstatus

Sudo smbd --version

Пример вывода:

Samba version 4.3.11-Ubuntu

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

Systemctl status smbd systemctl status nmbd

Для запуска этих двух служб, выполните следующие команды:

Sudo systemctl start smbd sudo systemctl start nmbd

После запуска, smbd будет слушать на порту 139 и 445.

Редактирование файла конфигурации

Там только один конфигурационный файл, который необходимо отредактировать: /etc/samba/smb.conf .

Sudo nano /etc/samba/smb.conf

В разделе , убедитесь, что значение workgroup относиться к рабочей группе компьютеров Windows.

Workgroup = WORKGROUP

Прокрутите вниз к нижней части файла. (В текстовом редакторе nano, нажмите CTRL+W а затем CTRL+V .) Включите новый раздел, как показано ниже. Замените username на необходимое имя пользователя.

Comment = Home Public Folder path = /home/username/ writable = yes valid users = username

Home Share это имя папки, которое будет отображаться в сети Windows. Комментарием является описание общей папки. Следующие 3 строки указывают, что только указанный пользователь valid users имеет право доступа к каталогу /home/username/ , который также доступен для записи. Вышеуказанная конфигурация отключит анонимный доступ.

Сохраните и закройте файл, а затем выполните следующую команду, чтобы проверить, если есть синтаксические ошибки.

Testparm

Создание пользователя

Samba содержит по умолчанию user в качестве режима защиты, означает, что клиенты должны ввести имя пользователя и пароль для доступа к общей папке. Чтобы добавить пользователя в Ubuntu, выполните следующую команду:

Sudo adduser username

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

Sudo smbpasswd -a username

Теперь все, что осталось сделать, это перезапустить демон smbd.

Sudo systemctl restart smbd

Доступ Samba к общей папки из Windows

На компьютере Windows, который находится в той же сети, откройте проводник и нажмите Сеть на левой панели. Вы увидите сервер самбы. Дважды щелкните общую папку и введите имя пользователя и пароль.

Доступ Samba к ресурсу папке с компьютера Ubuntu

В диспетчере файлов, перейдите на вкладку Сеть на левой панели и выберите Сеть Windows.

Выберите рабочую группу, сервер Samba и общую папку, а затем введите имя пользователя и пароль Samba.

Добавление нескольких пользователей или групп

Если нескольким учетным записям необходимо получение доступа к общей папке, то необходимо изменить правомерных пользователей, как показано ниже в файле /etc/samba/smb.conf .

Valid users = user1, user2, user3

Также используйте smbpasswd для установки пароля Samba для каждого из этих пользователей.

Sudo smbpasswd -a user1 sudo smbpasswd -a user2 sudo smbpasswd -a user3

Для того, чтобы разрешить группе пользователей получить доступ к общей папке, используйте следующую конфигурацию /etc/samba/smb.conf .

Valid users = @sambashare

Создайте группу.

Sudo groupadd sambashare

Затем добавьте в эту группу пользователей

Sudo gpasswd -a user1 sambashare sudo gpasswd -a user2 sambashare sudo gpasswd -a user3 sambashare

Группа должна иметь разрешение на запись в общую папку, которая может быть достигнута при следующих двух команд.

Набор sambashare как владельца группы общей папки:

Sudo chgrp sambashare /path/to/shared/folder -R

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

Sudo chmod g+w /path/to/shared/folder/ -R

Я надеюсь, что эта статья помогла вам настроить сервер Samba на Ubuntu 16.04. Как всегда, если вы нашли этот пост полезным, то отпишитесь в комментариях.

Реализация сетевых протоколов Server Message Block (SMB) и Common Internet File System (CIFS) . Основное предназначение - расшаривание файлов и принтеров между Linux и Windows системами.

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

  • smbd - демон, являющийся SMB-сервером файловых служб и служб печати;
  • nmbd - демон, предоставляющий службы имен NetBIOS;
  • smblient - утилита предоставляет доступ из командной строки к ресурсам SMB. Она также позволяет получить списки общих ресурсов на удаленных серверах и просматривать сетевое окружение;
  • smb.conf - конфигурационный файл, содержащий настройки для всех инструментов Samba;

Список портов, используемых Samba

  • share - этот режим безопасности эмулирует метод аутентификации, используемый операционными системами Windows 9x/Windows Me. В этом режиме имена пользователей игнорируются, а пароли назначаются общим ресурсам. В этом режиме Samba пытается использовать предоставленный клиентом пароль, которым могут пользоваться разные пользователи.
  • user * - этот режим безопасности установлен по умолчанию и использует для аутентификации имя пользователя и пароль, как это обычно делается в Linux. В большинстве случаев в современных операционных системах пароли хранятся в зашифрованной базе данных, которую использует только Samba.
  • server - этот режим безопасности используется тогда, когда необходимо, чтобы Samba выполняла аутентификацию, обращаясь к другому серверу. Для клиентов этот режим выглядит так же, как аутентификация на уровне пользователя (режим user), но фактически для выполнения аутентификации Samba обращается к серверу, указанному в параметре password server.
  • domain - используя этот режим безопасности, вы можете полностью присоединиться к домену Windows; для клиентов это выглядит так же, как аутентификация на уровне пользователя. В отличие от аутентификации на уровне сервера, доменная аутентификация использует более защищенный обмен паролями на уровне домена. Для полного присоединения к домену требуется выполнить дополнительные команды в системе Samba и, возможно, на контроллере домена.
  • ads - этот режим безопасности похож на метод аутентификации в домене, но требует наличия контроллера домена Active Directory Domain Services.

Полный список параметров Samba есть в manpages .

Выше был приведен пример с доступом для директории с общим доступом. Рассмотрим еще пример с приватной директорией, к которой доступ только по логину и паролю.

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

Sudo groupadd smbgrp sudo usermod -a -G smbgrp proft

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

Sudo mkdir -p /srv/samba/proft sudo chown -R proft:smbgrp /srv/samba/proft sudo chmod -R 0770 /srv/samba/proft

Создадим samba-пользователя

Sudo smbpasswd -a proft

Добавим в /etc/samba/smb.conf новый ресурс

Path = /srv/samba/proft valid users = @smbgrp guest ok = no writable = yes browsable = yes

Перезапустим сервер

Sudo systemctl restart smbd

Пример настройки ресурса в котором есть симлинк на папку пользователя (/srv/samba/media/video » /home/proft/video )

Path = /srv/samba/media guest ok = yes read only = yes browsable = yes force user = proft

Настройка клиента

Просмотр общих ресурсов компьютера

Smbclient -L 192.168.24.101 -U%

Еще один способ подключения для анонимного пользователя с командной строкой

Smbclient -U nobody //192.168.24.101/public ls

Если на сервере настроен более высокий уровень безопасности, то может потребоваться передать имя пользователя или домена с помощью параметров -W и -U соответственно.

Smbclient -L 192.168.24.101 -U proft -W WORKGROUP

Монтирование samba-ресурса

# создание точки монтирования mkdir -p ~/shares/public # монтирование ресурса # для анонимного пользователя nobody mount -t cifs //192.168.24.101/public /home/proft/shares/public -o user=nobody,password=,workgroup=WORKGROUP,ip=192.168.24.101,utf8 # для пользователя proft mount -t cifs //192.168.24.101/public /home/proft/shares/public -o user=proft,password=1,workgroup=WORKGROUP,ip=192.168.24.101,utf8

Еще лучше пароли хранить в отдельном файле

# sudo vim /etc/samba/sambacreds username=proft password=1 username=noboy password=

Выставим права доступа 0600

Sudo chmod 0600 /etc/samba/sambacreds

Новая строка для монтирования

Mount -t cifs //192.168.24.101/public /home/proft/shares/public -o user=proft,credentials=/etc/samba/sambacreds,workgroup=WORKGROUP,ip=192.168.24.101

И пример для /etc/fstab

//192.168.24.101/public /home/proft/shares/public cifs noauto,username=proft,credentials=/etc/samba/sambacreds,workgroup=WORKGROUP,ip=192.168.24.101 0 0

Открыть ресурс в файловом менеджере Nautilus/Nemo/etc можно по такому пути smb://192.268.24.101 .

Если Nemo пишет Nemo cannot handle "smb" locations. значит не хватает пакета gvfs-smb .

Доступ к серверу с Windows и Android клиента

Под Windows узнать рабочую группу с консоли можно с помощью

Net config workstation

Открыть ресурсы на удаленной машине можно набрав в строке Explorer (Проводник) или в Run (Start - Run) UNC-адрес: \192.168.24.101 .

Под Android подключится к серверу можно с помощью ES File Explorer , на вкладке Network добавляем сервер, просто по IP (без указания схемы, smb). После чего можно открывать расшаренные ресурсы. Для статистики: HDRIP-фильм идет без подтормаживания.

Дополнительное чтиво







2024 © gtavrl.ru.