Samba – это бесплатная и открытая реализация протокола сетевого обмена файлами SMB/CIFS, который позволяет конечным пользователям получать доступ к файлам, принтерам и другим общим ресурсам.
В этой статье мы покажем, как установить Samba в CentOS 7 и настроить его в качестве автономного сервера для совместного использования файлов в разных операционных системах по сети.
Мы создадим следующие общие ресурсы и пользователей Samba.
Пользователи:
- sadmin – Администратор с правами чтения и записи для всех общих ресурсов.
- andreyex – обычный пользователь со своей личной папкой.
Совместное использование:
- users – этот ресурс будет доступен всем пользователям с правами на чтение/запись.
- andreyex – этот ресурс будет доступен с правами на чтение/запись только пользователям andreyex и 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. Мы создадим пользователей, используя стандартный инструмент useradd в Linux, а затем установим пароль пользователя с помощью утилиты smbpasswd.
Как мы упоминали во введении, мы создадим обычного пользователя, который будет иметь доступ к своему личному общему файлу и одну административную учетную запись с правами чтения и записи для всех общих ресурсов на сервере Samba.
Создание пользователей Samba
Чтобы создать нового пользователя с именем andreyex, используйте следующую команду:
sudo useradd -M -d /samba/andreyex -s /usr/sbin/nologin -G sambashare andreyex
В опции useradd имеют следующие значения:
- -M – не создавать домашний каталог пользователя. Мы вручную создадим этот каталог.
- -d /samba/andreyex – установить домашний каталог пользователя в /samba/andreyex.
- -s /usr/sbin/nologin – отключить доступ к оболочке для этого пользователя.
- -G sambashare- добавить пользователя в группу sambashare.
Создайте домашний каталог пользователя и установите владельца каталога для пользователя andreyex и группы sambashare:
sudo mkdir /samba/andreyexsudo chown andreyex:sambashare /samba/andreyex
Следующая команда добавит бит setgid в каталог /samba/andreyex, чтобы вновь созданные файлы в этом каталоге наследовали группу родительского каталога. Таким образом, независимо от того, какой пользователь создаст новый файл, он будет иметь владельца группы sambashare. Например, если вы не установите права доступа к каталогу на 2770 а пользователь sadmin создаст новый файл, пользователь andreyex не сможет читать и записывать в этот файл.
sudo chmod 2770 /samba/andreyex
Добавьте учетную запись andreyex пользователя в базу данных Samba, установив пароль пользователя:
sudo smbpasswd -a andreyex
Вам будет предложено ввести и подтвердить пароль пользователя.
New SMB password: Retype new SMB password: Added user andreyex.
После того, как пароль установлен, включите учетную запись Samba, введя:
sudo smbpasswd -e andreyex
Enabled user andreyex.
Для создания другого пользователя повторите тот же процесс, что и при создании пользователя andreyex.
Далее давайте создадим пользователя и группу 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 [andreyex] path = /samba/andreyex browseable = no read only = no force create mode = 0660 force directory mode = 2770 valid users = andreyex @sadmin
Опции имеют следующие значения:
- [users] и [andreyex] – имена общих ресурсов, которые вы будете использовать при входе в систему.
- path – путь к общему ресурсу.
- browseable – должна ли акция быть указана в списке доступных акций. Установив no для других пользователей, не сможет увидеть общий ресурс.
- read only – могут ли пользователи, указанные в списке valid users, писать в этот общий ресурс.
- force create mode – устанавливает разрешения для вновь созданных файлов в этой общей папке.
- force directory mode – устанавливает разрешения для вновь созданных каталогов в этой общей папке.
- valid users – список пользователей и групп, которым разрешен доступ к общему ресурсу. Группы имеют префикс с символом @.
После этого перезапустите сервисы Samba:
sudo systemctl restart smb.service sudo systemctl restart nmb.service
В следующих разделах мы покажем вам, как подключиться к общему ресурсу Samba из клиентов Linux, macOS и Windows.
Подключение к Samba Share из 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
Например, чтобы подключиться к общему ресурсу с именем andreyex на сервере Samba с IP-адресом 213.159.209.228 от имени пользователя andreyex, запустите
smbclient //213.159.209.228/andreyex -U andreyex
Вам будет предложено ввести пароль пользователя.
Enter WORKGROUP\andreyex'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
Например, чтобы смонтировать общий ресурс с именем andreyex на сервере Samba с IP-адресом 213.159.209.228 от имени пользователя andreyex до точки монтирования /mnt/smbmount, запустите:
sudo mount -t cifs -o username=andreyex //213.159.209.228/andreyex /mnt/smbmount
Вам будет предложено ввести пароль пользователя.
Password for andreyex@//213.159.209.228/andreyex: ********
Использование GUI
Файлы, файловый менеджер по умолчанию в Gnome имеет встроенную опцию для доступа к общим ресурсам Samba.
- Откройте «Файлы» и нажмите «Другие места» на боковой панели.
- В поле «Подключение к серверу» введите адрес общей папки Samba в следующем формате smb://samba_hostname_or_server_ip/sharename.
- Нажмите «Подключиться» и появится следующий экран:
- Выберите «Зарегистрированный пользователь», введите имя пользователя и пароль Samba и нажмите «Подключиться».
- Файлы будут показаны на сервере Samba.
Подключение к Samba Share из macOS
В macOS вы можете получить доступ к общим ресурсам Samba либо из командной строки, либо с помощью стандартного менеджера файлов MacOS Finder. Следующие шаги показывают, как получить доступ к общему ресурсу с помощью Finder.
- Откройте «Finder», выберите «Go» и нажмите «Connect To».
- В поле «Подключиться к» введите адрес общего ресурса Samba в следующем формате smb://samba_hostname_or_server_ip/sharename.
- Нажмите «Подключиться»
- Выберите «Зарегистрированный пользователь», введите имя пользователя и пароль Samba и нажмите «Подключиться».
- Файлы будут показаны на сервере Samba.
Подключение к общему ресурсу Samba из Windows
Пользователи Windows также могут подключаться к общему ресурсу Samba как из командной строки, так и из графического интерфейса. В приведенных ниже действиях показано, как получить доступ к общему ресурсу с помощью проводника Windows.
- Откройте проводник и в левой панели щелкните правой кнопкой мыши на «Мой компьютер».
- Выберите «Выбрать пользовательское сетевое расположение» и нажмите «Далее».
- В поле «Интернет или сетевой адрес» введите адрес общего ресурса Samba в следующем формате \\samba_hostname_or_server_ip\sharename.
- Нажмите «Далее», и вам будет предложено ввести учетные данные.
- В следующем окне вы можете ввести собственное имя для сетевого расположения. По умолчанию будет выбран сервер Samba.
- Нажмите «Далее», чтобы перейти к последнему экрану мастера настройки соединения.
- Нажмите «Готово», и файлы на сервере Samba будут показаны.
Заключение
Из этого руководства вы узнали, как установить сервер Samba в CentOS 7 и создать различные типы общих ресурсов и пользователей. Мы также показали, как подключиться к серверу Samba с устройств Linux, macOS и Windows.