Установка Samba в Ubuntu 20.04

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

Samba позволяет системам Linux, включая Ubuntu, обмениваться файлами с системами Windows, включая Windows 10 и другие операционные системы.

Чтобы из руководства все получилось, компьютеры с Windows и Ubuntu должны быть в одной подсети. Т.е. они должны иметь возможность общаться по сети.

В этом руководстве мы будем использовать сеть 172.16.10.0/25.

Компьютер c Windows будет иметь IP-адрес 172.16.10.6, а компьютер с Ubuntu – 172.16.10.100.

Оба компьютера также находятся в одной локальной рабочей группе. Вы можете назвать рабочую группу как хотите, но для этого поста наша рабочая группа будет рабочей группой Windows по умолчанию под названием WORKGROUP.

Windows IP адрес172.16.10.6
Ubuntu IP адрес172.16.10.100

Определите рабочую группу Windows

Чтобы узнать, к какой рабочей группе принадлежит компьютер с Windows, откройте командную строку CMD и введите командe ниже:

net config workstation

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

Добавьте Ubuntu в файл хоста Windows

Если у вас нет собственного DNS и вы хотите ссылаться на каждую систему по их именам, вам нужно добавить эти имена в файл локального хоста на каждой машине.

В системе Windows откройте командную строку от имени администратора и выполните следующие команды.

notepad C:\\Windows\System32\drivers\etc\hosts

Затем добавьте локальную запись для компьютера с Ubuntu

#Copyright (c) 1993-2009 Microsoft Corp.
#
#This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
#This file contains the mappings of IP addresses to host names. Each
#entry should be kept on an individual line. The IP address should
#be placed in the first column followed by the corresponding host name.
#The IP address and the host name should be separated by at least one
#space.
#
#Additionally, comments (such as these) may be inserted on individual
#lines or following the machine name denoted by a '#' symbol.
#
#For example:
#
#102.54.94.97     rhino.acme.com          # source server
#38.25.63.10     x.acme.com              # x client host
#localhost name resolution is handled within DNS itself.
#127.0.0.1       localhost
172.16.10.100            ubuntu.localhost           ubuntu

Сохраните изменения, и закройте файл.

Для того чтобы добавить имя компьютера Windows в файл хоста компьютера Ubuntu, нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть командный терминал.

Затем выполните следующие команды:

sudo nano /etc/hosts

Затем введите IP-адрес с именем хоста для компьютера Windows, сохраните файл и выйдите.

172.16.10.6  windows

Включение общего доступа к файлам

Чтобы сделать возможным совместное использование файлов, эта функция должна быть включена в системах Windows. Чтобы включить это, запустите командную строку от имени администратора и выполните следующие команды.

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

netsh advfirewall firewall set rule group="Общий доступ к файлам и принтерам" new enable=Yes 
netsh advfirewall firewall set rule group="Обнаружение сети" new enable=Yes

Совместное использование файлов должно быть включено на компьютере с Windows после выполнения приведенных выше команд.

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

На этом этапе компьютеры с Windows и Ubuntu должны быть членами одной и той же рабочей группы, и обе системы имеют записи в своем локальном хост-файле, чтобы ссылаться на другую по имени.

Войдите в систему на компьютере Ubuntu, чтобы установить Samba. Для её установки выполните следующие команды:

sudo apt update 
sudo apt install samba

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

sudo systemctl status smbd

Вывод должен показать похожие строки, как это видно ниже:

smbd

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

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

sudo cp /etc/samba/smb.conf{,.backup}

Затем откройте файл конфигурации Samba, выполнив следующую команду.

sudo nano /etc/samba/smb.conf

Измените выделенные строки в соответствии с приведенными ниже.

#======================= Global Settings =======================
 [global]
## Browsing/Identification ###
# Change this to the workgroup/NT-domain name your Samba server will part of

 workgroup = WORKGROUP
    netbios name = ubuntu
    security = user
    proxy = no
    map to guest = bad user

#### Networking #### 
# 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.
 bind interfaces only = yes
# Most people will want "standalone server" or "member server".
# Running as "active directory domain controller" will require first

 server role = standalone server
 obey pam restrictions = yes

# This boolean parameter controls whether Samba attempts to sync the Unix

 [public]
    path = /samba/public
    browseable = yes
    guest ok = yes
    guest only = yes
    read only = no
    force user = nobody
    force create mode = 0777
    force directory mode = 0777

После этого сохраните изменения. Затем запустите утилиту testparm, чтобы проверить файл конфигурации Samba на наличие ошибок.

testparm

Перезапустите сервисы Samba.

sudo systemctl restart smbd

Создание общей папки

Далее создайте общую папку, к которой у всех должен быть доступ, как определено в конфигурации Samba выше…

sudo mkdir -p /samba/public

Установите разрешения, чтобы каждый мог читать и писать в эту папку.

sudo chown -R nobody:nogroup /samba/public 
sudo chmod -R 0775 /samba/public 
sudo chgrp sambashare /samba/public

Перезапустите Samba и откройте проводник Windows, чтобы просмотреть общее папку в Ubuntu.

sudo service smbd restart

Теперь перейдите на свой компьютер с Windows, и вы должны увидеть общую общую папку в Ubuntu при просмотре диспетчера файлов, как показано ниже.

smbd1

Доступ должен быть у всех.

Настройка приватного ресурса Samba

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

Сначала создайте группу samba под названием smbgroup для общего ресурса (только участники будут иметь доступ). Чтобы создать группы в Ubuntu, выполните следующие команды.

sudo addgroup smbgroup

Затем добавьте пользователя в группу, выполнив следующие команды

sudo usermod -aG smbgroup myuser

Наконец, всем пользователям, которым нужен доступ к защищенному общему ресурсу samba, потребуется ввести пароль. Чтобы добавить пользователя в базу паролей samba, выполните приведенные ниже команды для каждого пользователя.

sudo smbpasswd -a myuser
sudo smbpasswd -e myuser

Пользователю будет предложено ввести и подтвердить пароль. Этот пароль будет использоваться для доступа к защищенным ресурсам samba.

Затем перейдите и создайте защищенный общий ресурс в каталоге /samba.

sudo mkdir -p /samba/protected

Затем предоставьте доступ к этому общему ресурсу только root и группе участников.

cd /samba/ 
sudo chown -R root:smbgroup protected 
sudo chmod -R 0770 protected

Когда вы закончите создавать защищенный ресурс, откройте файл smb.conf и внесите необходимые изменения.

sudo nano /etc/samba/smb.conf

Добавьте блок конфигурации указанный ниже в файл smb.conf

[Protected]
  path = /samba/protected
  valid users = @smbgroup
  guest ok = no
  writable = yes
  browsable = yes

Сохраните изменения.

Перезапустите smbd и проверьте свои изменения.

sudo service smbd restart

Указанными выше инструкциями можно добавить сколько угодно разных общих ресурсов.

Вы можете подключить диск в Windows для облегчения доступа.

Готово !

Оставьте комментарий