Как установить и настроить Samba в Ubuntu 18.04
Как установить и настроить Samba в Ubuntu 18.04
How to Install and Configure Samba on Ubuntu 18.04
В этом руководстве объясняется, как установить Samba в Ubuntu 18.04 и настроить его как автономный сервер для обеспечения обмена файлами между различными операционными системами по сети.

Samba - это бесплатная и открытая повторная реализация сетевого протокола обмена файлами SMB / CIFS, который позволяет конечным пользователям получать доступ к файлам, принтерам и другим общим ресурсам.
Мы создадим следующие общие ресурсы и пользователей Samba.
Пользователи:
- sadmin - административный пользователь с правами чтения и записи для всех общих ресурсов.
- josh - Обычный пользователь со своим личным файловым хранилищем .
Ресурсы:
- users - этот общий ресурс будет доступен всем пользователям с разрешениями на чтение и запись.
- josh - этот общий ресурс будет доступен с разрешениями на чтение и запись только пользователям josh и sadmin.
Общие файловые ресурсы будут доступны со всех устройств в вашей сети. Позже в этом руководстве мы также предоставим подробные инструкции о том, как подключиться к серверу Samba из клиентов Linux, Windows и macOS.
Прежде чем приступить
Прежде чем продолжить, убедитесь, что вы вошли в систему Ubuntu 18.04 как пользователь с правами sudo .
Установка Samba в Ubuntu
Samba доступна в официальных репозиториях Ubuntu. Чтобы установить его в вашей системе Ubuntu, выполните следующие действия:
-
Начните с обновления индекса пакетов apt:
sudo apt update
-
Установите пакет Samba с помощью следующей команды:
sudo apt install samba
-
После завершения установки служба Samba запустится автоматически. Чтобы проверить, запущен ли сервер Samba, введите:
sudo systemctl status smbd
Результат должен выглядеть примерно так, как показано ниже, показывая, что служба Samba активна и работает:
● smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-11-27 09:25:38 UTC; 2min 12s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 15142 (smbd) Status: "smbd: ready to serve connections..." Tasks: 4 (limit: 1152) CGroup: /system.slice/smbd.service ...
На этом этапе Samba установлена и готова к настройке.
Настройка межсетевого экрана
Если у вас есть брандмауэр работает в вашей системе Ubuntu вам необходимо разрешить входящие соединения UDP на портах 137
и 138
и TCP соединений на портах 139
и 445
.
Предполагая, что вы используете UFW
для управления брандмауэром, вы можете открыть порты, включив профиль Samba:
sudo ufw allow 'Samba'
Настройка глобальных параметров Samba
Прежде чем вносить изменения в файл конфигурации Samba, создайте резервную копию для использования в будущем:
sudo cp /etc/samba/smb.conf{,.backup}
Файл конфигурации по умолчанию, который поставляется с пакетом Samba, настроен для автономного сервера Samba. Откройте файл и убедитесь, что для server role
него установлено значение standalone server
sudo nano /etc/samba/smb.conf
...
# Most people will want "standalone sever" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.
server role = standalone server
...
По умолчанию Samba прослушивает все интерфейсы. Если вы хотите ограничить доступ к серверу Samba только из своей внутренней сети, раскомментируйте следующие две строки и укажите интерфейсы для привязки:
...
# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
interfaces = 127.0.0.0/8 eth0
# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself. However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
bind interfaces only = yes
...
После этого запустите testparm
утилиту, чтобы проверить файл конфигурации Samba на наличие ошибок. Если нет синтаксических ошибок, вы увидитеLoaded services file OK.
Наконец, перезапустите службы Samba с помощью:
sudo systemctl restart smbd
sudo systemctl restart nmbd
Создание пользователей Samba и структуры каталогов
Для упрощения обслуживания и гибкости вместо использования стандартных домашних каталогов ( /home/user
) все каталоги и данные Samba будут расположены в этом /samba
каталоге.
Чтобы создать /samba
каталог типа:
sudo mkdir /samba
Установите собственность группы в sambashare
. Эта группа создается во время установки Samba, позже мы добавим в эту группу всех пользователей Samba.
sudo chgrp sambashare /samba
Samba использует систему разрешений пользователей и групп Linux, но имеет собственный механизм аутентификации, отличный от стандартной аутентификации Linux. Мы создадим пользователей с помощью стандартного useradd
инструмента Linux , а затем установим пароль пользователя с помощью 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
Этот каталог будет доступен всем авторизованным пользователям. Следующая chmod
команда предоставляет доступ для записи / чтения членам sambashare
группы в /samba/users
каталоге:
sudo chmod 2770 /samba/users
Настройка общих ресурсов Samba
Откройте файл конфигурации Samba и добавьте разделы:
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
[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 smbd
sudo systemctl restart nmbd
В следующих разделах мы покажем вам, как подключиться к общему ресурсу 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 WORKGROUP\josh'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: ********
Использование графического интерфейса
Files, файловый менеджер по умолчанию в Gnome имеет встроенную возможность доступа к общим ресурсам Samba.
- Откройте файлы и нажмите «Другие места» на боковой панели.
- В поле «Подключиться к серверу» введите адрес общего ресурса Samba в следующем формате
smb://samba_hostname_or_server_ip/sharename
. - Нажмите «Подключиться», и появится следующий экран:
- Выберите «Зарегистрированный пользователь», введите имя пользователя и пароль Samba и нажмите «Подключиться».
- Будут показаны файлы на сервере Samba.
Подключение к общему ресурсу Samba из macOS
В macOS вы можете получить доступ к общим ресурсам Samba либо из командной строки, либо с помощью стандартного файлового менеджера macOS Finder. Следующие шаги показывают, как получить доступ к общему ресурсу с помощью 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 в Ubuntu 18.04 и создать различные типы общих и пользователей. Мы также показали вам, как подключиться к серверу Samba с устройств Linux, macOS и Windows.