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