Как установить и настроить Samba на CentOS 7

Установка и настройка Samba на CentOS 7

Samba — это бесплатная и открытая реализация сетевого протокола обмена файлами SMB/CIFS , которая позволяет конечным пользователям получать доступ к файлам, принтерам и другим общим ресурсам.

В этом руководстве мы покажем, как установить Samba на CentOS 7 и настроить ее как автономный сервер для обеспечения совместного доступа к файлам между различными операционными системами по сети.

Мы создадим следующие общие ресурсы и пользователей Samba.

Пользователи:

  • sadmin — администратор с правами на чтение и запись всех общих ресурсов.
  • josh — Обычный пользователь со своим личным файлообменником.

Акции:

  • пользователи — этот общий ресурс будет доступен с правами на чтение и запись всем пользователям.
  • josh — этот общий ресурс будет доступен с правами на чтение и запись только пользователям josh и sadmin.

Файловые ресурсы будут доступны со всех устройств в вашей сети. Далее в руководстве мы также предоставим подробные инструкции по подключению к серверу Samba с клиентов Linux, Windows и macOS.

Предпосылки

Прежде чем начать, убедитесь, что вы вошли в систему CentOS 7 как пользователь с привилегиями sudo .

Установка Samba на CentOS

Samba доступна в стандартных репозиториях CentOS. Чтобы установить её в вашей системе CentOS, выполните следующую команду:

 sudo yum install samba samba-client

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

 sudo systemctl start smb.service sudo systemctl start nmb.service
 sudo systemctl enable smb.service sudo systemctl enable nmb.service

Служба smbd предоставляет службы совместного доступа к файлам и печати и прослушивает порты TCP 139 и 445. Служба nmbd предоставляет клиентам службы именования NetBIOS через IP и прослушивает порт UDP 137.

Настройка брандмауэра

Теперь, когда Samba установлена и запущена на вашем компьютере с CentOS, вам необходимо настроить брандмауэр и открыть необходимые порты. Для этого выполните следующие команды:

 firewall-cmd --permanent --zone=public --add-service=samba firewall-cmd --zone=public --add-service=samba

Создание пользователей Samba и структуры каталогов

Для удобства обслуживания и гибкости вместо использования стандартных домашних каталогов ( /home/user ) все каталоги и данные Samba будут располагаться в каталоге /samba .

Начните с создания каталога /samba :

 sudo mkdir /samba

Создайте новую группу под названием sambashare . Позже мы добавим в неё всех пользователей Samba.

 sudo groupadd sambashare

Установите в качестве владельца группы каталога /samba значение sambashare :

 sudo chgrp sambashare /samba

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

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

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

Чтобы создать нового пользователя с именем josh , используйте следующую команду:

 sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh

Параметры useradd имеют следующие значения:

  • -M — не создавать домашний каталог пользователя. Мы создадим этот каталог вручную.
  • -d /samba/josh — установить домашний каталог пользователя в /samba/josh .
  • -s /usr/sbin/nologin — отключить доступ к оболочке для этого пользователя.
  • -G sambashare — добавить пользователя в группу sambashare .

Создайте домашний каталог пользователя и установите владельца каталога для пользователя josh и группы sambashare :

 sudo mkdir /samba/josh sudo chown josh:sambashare /samba/josh

Следующая команда добавит бит setgid к каталогу /samba/josh , чтобы вновь создаваемые файлы в этом каталоге наследовали группу родительского каталога. Таким образом, независимо от того, какой пользователь создаст новый файл, владельцем файла будет группа sambashare . Например, если вы не установите права доступа к каталогу 2770 , а пользователь sadmin создаст новый файл, пользователь josh не сможет читать и записывать этот файл.

 sudo chmod 2770 /samba/josh

Добавьте учетную запись пользователя josh в базу данных Samba, установив пароль пользователя:

 sudo smbpasswd -a josh

Вам будет предложено ввести и подтвердить пароль пользователя.

 New SMB password: Retype new SMB password: Added user josh.

После установки пароля включите учетную запись Samba, введя:

 sudo smbpasswd -e josh
 Enabled user josh.

Чтобы создать другого пользователя, повторите тот же процесс, что и при создании пользователя josh .

Далее создадим пользователя и группу sadmin . Все члены этой группы будут иметь права администратора. Если позже вы захотите предоставить права администратора другому пользователю, просто добавьте его в группу sadmin .

Создайте административного пользователя, введя:

 sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin

Приведенная выше команда также создаст группу sadmin и добавит пользователя в группы sadmin и sambashare .

Установите пароль и включите пользователя:

 sudo smbpasswd -a sadmin sudo smbpasswd -e sadmin

Далее создайте общий каталог Users :

 sudo mkdir /samba/users

Установите владельца каталога для пользователя sadmin и группы sambashare :

 sudo chown sadmin:sambashare /samba/users

Этот каталог будет доступен всем аутентифицированным пользователям. Следующая команда настраивает доступ на запись/чтение для членов группы sambashare в каталоге /samba/users :

 sudo chmod 2770 /samba/users

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

Откройте файл конфигурации Samba и добавьте разделы:

 sudo nano /etc/samba/smb.conf

/etc/samba/smb.conf

 [users] path = /samba/users browseable = yes read only = no force create mode = 0660 force directory mode = 2770 valid users = @sambashare @sadmin [josh] path = /samba/josh browseable = no read only = no force create mode = 0660 force directory mode = 2770 valid users = josh @sadmin

Параметры имеют следующие значения:

  • [users] и [josh] — названия общих ресурсов, которые вы будете использовать при входе в систему.
  • path — Путь к общему ресурсу.
  • browseable — отображать ли общий ресурс в списке доступных общих ресурсов. Если установить значение no другие пользователи не смогут видеть общий ресурс.
  • read only — могут ли пользователи, указанные в списке valid users записывать данные в этот общий ресурс.
  • force create mode — устанавливает разрешения для вновь создаваемых файлов в этом общем ресурсе.
  • force directory mode — устанавливает разрешения для вновь создаваемых каталогов в этом общем ресурсе.
  • valid users — список пользователей и групп, которым разрешён доступ к общему ресурсу. Группы начинаются с символа @ .

Дополнительную информацию о доступных параметрах см. на странице документации по файлу конфигурации Samba .

После этого перезапустите службы Samba с помощью:

 sudo systemctl restart smb.service sudo systemctl restart nmb.service

В следующих разделах мы покажем вам, как подключиться к общему ресурсу Samba с клиентов Linux, macOS и Windows.

Подключение к общему ресурсу Samba из Linux

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

Использование клиента smbclient

smbclient — это инструмент, позволяющий получить доступ к Samba из командной строки. Пакет smbclient не предустановлен в большинстве дистрибутивов Linux, поэтому вам потребуется установить его с помощью менеджера пакетов вашего дистрибутива.

Чтобы установить smbclient в Ubuntu и Debian, выполните:

 sudo apt install smbclient

Чтобы установить smbclient на CentOS и Fedora, выполните:

 sudo yum install samba-client

Синтаксис доступа к общему ресурсу Samba следующий:

 mbclient //samba_hostname_or_server_ip/share_name -U username

Например, чтобы подключиться к общему ресурсу с именем josh на сервере Samba с IP-адресом 192.168.121.118 как пользователь josh , необходимо выполнить:

 smbclient //192.168.121.118/josh -U josh

Вам будет предложено ввести пароль пользователя.

 Enter WORKGROUPjosh's password:

После ввода пароля вы войдете в интерфейс командной строки Samba.

 Try "help" to get a list of possible commands. smb: >

Монтирование общего ресурса Samba

Чтобы смонтировать общий ресурс Samba в Linux, сначала необходимо установить пакет cifs-utils .

В Ubuntu и Debian выполните:

 sudo apt install cifs-utils

В CentOS и Fedora запустите:

 sudo yum install cifs-utils

Далее создаем точку монтирования:

 sudo mkdir /mnt/smbmount

Смонтируйте общий ресурс с помощью следующей команды:

 sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount

Например, чтобы смонтировать общий ресурс с именем josh на сервере Samba с IP-адресом 192.168.121.118 от имени пользователя josh к точке монтирования /mnt/smbmount необходимо выполнить:

 sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount

Вам будет предложено ввести пароль пользователя.

 Password for josh@//192.168.121.118/josh: ********

Использование графического интерфейса

Файлы, файловый менеджер по умолчанию в Gnome, имеет встроенную опцию для доступа к общим папкам Samba.

  1. Откройте «Файлы» и нажмите «Другие расположения» на боковой панели.
  2. В поле «Подключение к серверу» введите адрес общего ресурса Samba в следующем формате smb://samba_hostname_or_server_ip/sharename .
  3. Нажмите «Подключиться», и появится следующий экран:
    Вход в Gnome Samba
  4. Выберите «Зарегистрированный пользователь», введите имя пользователя и пароль Samba и нажмите «Подключиться».
  5. Будут показаны файлы на сервере Samba.
    Файлы Gnome Samba

Подключение к общему ресурсу Samba из macOS

В macOS доступ к общим ресурсам Samba можно получить либо из командной строки, либо с помощью файлового менеджера macOS Finder, установленного по умолчанию. Ниже показано, как получить доступ к общим ресурсам с помощью Finder.

  1. Откройте «Finder», выберите «Перейти» и нажмите «Подключиться к».
  2. В поле «Подключиться к» введите адрес общего ресурса Samba в следующем формате smb://samba_hostname_or_server_ip/sharename .
    macOS Samba Connect
  3. Нажмите «Подключиться», и появится следующий экран:
    Вход в macOS Samba
  4. Выберите «Зарегистрированный пользователь», введите имя пользователя и пароль Samba и нажмите «Подключиться».
  5. Будут показаны файлы на сервере Samba.
    Файлы Samba для macOS

Подключение к общему ресурсу Samba из Windows

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

  1. Откройте проводник и на левой панели щелкните правой кнопкой мыши «Этот компьютер».
  2. Выберите «Выбрать пользовательское сетевое расположение», а затем нажмите «Далее».
  3. В поле «Интернет-адрес или сетевой адрес» введите адрес общего ресурса Samba в следующем формате \samba_hostname_or_server_ipsharename .
    Windows Samba Connect
  4. Нажмите «Далее», и вам будет предложено ввести учетные данные для входа, как показано ниже:
    Windows Samba Connect
  5. В следующем окне вы можете ввести имя для сетевого расположения. Имя по умолчанию будет выбрано сервером Samba.
    Имя Windows Samba
  6. Нажмите «Далее», чтобы перейти к последнему экрану мастера настройки подключения.
  7. Нажмите «Готово», и файлы на сервере Samba будут отображены.
    Файлы Windows Samba

Заключение

В этом руководстве вы узнали, как установить сервер Samba на CentOS 7 и создавать различные типы общих ресурсов и пользователей. Мы также показали, как подключаться к серверу Samba с устройств Linux, macOS и Windows.

samba centos Не используете CentOS 7?
Выберите другую ОС:
убунту 18.04

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *