
Samba — это бесплатная и открытая реализация сетевого протокола обмена файлами SMB/CIFS , которая позволяет конечным пользователям получать доступ к файлам, принтерам и другим общим ресурсам.
В этом руководстве объясняется, как установить Samba на Ubuntu 18.04 и настроить его как автономный сервер для обеспечения совместного доступа к файлам между различными операционными системами по сети.
Мы создадим следующие общие ресурсы и пользователей Samba.
Пользователи:
- sadmin — администратор с правами на чтение и запись всех общих ресурсов.
- josh — Обычный пользователь со своим личным файлообменником.
Акции:
- пользователи — этот общий ресурс будет доступен с правами на чтение и запись всем пользователям.
- 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
/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 только из вашей внутренней сети, раскомментируйте следующие две строки и укажите интерфейсы для привязки:
/etc/samba/smb.conf
... # 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 smbdsudo systemctl restart nmbd
Создание пользователей Samba и структуры каталогов
Для удобства обслуживания и гибкости вместо использования стандартных домашних каталогов ( /home/user ) все каталоги и данные Samba будут располагаться в каталоге /samba .
Чтобы создать каталог /samba введите:
sudo mkdir /samba
Установите в качестве владельца группы sambashare . Эта группа создается во время установки Samba, позже мы добавим в нее всех пользователей Samba.
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/joshsudo 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 sadminsudo 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
/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 smbdsudo 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 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.
- Откройте «Файлы» и нажмите «Другие расположения» на боковой панели.
- В поле «Подключение к серверу» введите адрес общего ресурса Samba в следующем формате
smb://samba_hostname_or_server_ip/sharename. - Нажмите «Подключиться», и появится следующий экран:

- Выберите «Зарегистрированный пользователь», введите имя пользователя и пароль Samba и нажмите «Подключиться».
- Будут показаны файлы на сервере Samba.

Подключение к общему ресурсу Samba из macOS
В macOS доступ к общим ресурсам Samba можно получить из командной строки или с помощью файлового менеджера Finder, встроенного в macOS по умолчанию. Ниже показано, как получить доступ к общим ресурсам с помощью Finder.
- Откройте «Finder», выберите «Перейти» и нажмите «Подключиться к».
- В поле «Подключиться к» введите адрес общего ресурса Samba в следующем формате
smb://samba_hostname_or_server_ip/sharename.

- Нажмите «Подключиться», и появится следующий экран:

- Выберите «Зарегистрированный пользователь», введите имя пользователя и пароль Samba и нажмите «Подключиться».
- Будут показаны файлы на сервере Samba.

Подключение к общему ресурсу Samba из Windows
Пользователи Windows также могут подключиться к общему ресурсу Samba как из командной строки, так и через графический интерфейс. Ниже показано, как получить доступ к общему ресурсу с помощью проводника Windows.
- Откройте проводник и на левой панели щелкните правой кнопкой мыши «Этот компьютер».
- Выберите «Выбрать пользовательское сетевое расположение», а затем нажмите «Далее».
- В поле «Интернет-адрес или сетевой адрес» введите адрес общего ресурса Samba в следующем формате
\samba_hostname_or_server_ipsharename.

- Нажмите «Далее», и вам будет предложено ввести учетные данные для входа, как показано ниже:

- В следующем окне вы можете ввести имя для сетевого расположения. Имя по умолчанию будет выбрано сервером Samba.

- Нажмите «Далее», чтобы перейти к последнему экрану мастера настройки подключения.
- Нажмите «Готово», и файлы на сервере Samba будут отображены.

Заключение
В этом руководстве вы узнали, как установить сервер Samba в Ubuntu 18.04 и создавать различные типы общих ресурсов и пользователей. Мы также показали, как подключаться к серверу Samba с устройств Linux, macOS и Windows.
samba ubuntu Не используете Ubuntu 18.04?
Выберите другую ОС: центос 7
Связанные руководства
- Как установить Python 3.8 в Ubuntu 18.04
- Как установить Odoo 13 на Ubuntu 18.04
- Как изменить пароль root в Ubuntu Linux
- Как удалить пакеты программного обеспечения в Ubuntu
- Как добавить репозиторий Apt в Ubuntu
- Как добавить пользователя в Sudoers в Ubuntu
- Как настроить DNS-серверы имен в Ubuntu 18.04