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
Вывод должен показать похожие строки, как это видно ниже:
Настройка общих ресурсов 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 при просмотре диспетчера файлов, как показано ниже.
Доступ должен быть у всех.
Настройка приватного ресурса 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 для облегчения доступа.
Готово !