Добро пожаловать в наше руководство по установке и настройке Samba Share на сервере Debian 10 (Buster) и системе Ubuntu 18.04 Linux.
Samba – это реализация протоколов Server Message Block (SMB) и Common Internet File System (CIFS) с открытым исходным кодом, предоставляющая услуги хранения файлов и печати между клиентами в различных операционных системах.
Настроив общий ресурс сервера Samba в Debian 10 (Buster) / Ubuntu 18.04, вы можете легко обмениваться папками или файлами между операционными системами Windows и Linux.
В этом контексте машина Windows будет использоваться в качестве клиента для доступа к общему ресурсу Samba в Linux (Debian 10 / Ubuntu 18.04).
Шаг 1: Установите Samba Server в Debian 10 / Ubuntu 18.04
Чтобы установить Samba на Debian 10 Buster / Ubuntu 18.04, используйте команды:
sudo apt -y update
sudo apt -y install samba
Если вы используете статический IP-адрес, ответьте «no», когда вас попросят использовать настройки WINS от DHCP.
Шаг 2. Настройка общего ресурса Samba в Debian 10 Buster / Ubuntu 18.04
Samba использует файл конфигурации в /etc/samba/smb.conf.
Если вы измените этот файл конфигурации, изменения не вступят в силу, пока вы не перезапустите демон Samba.
Давайте начнем с создания каталога для обмена через Samba.
Каталог должен существовать, прежде чем его можно будет настроить в smb.conf.
Мы создадим один такой в /home.
sudo mkdir -p /home/share
Доступ всем без аутентификации (не рекомендуется)
Каталог должен быть доступен для чтения и записи для всех пользователей.
sudo chmod 777 /home/share
Настройте общий ресурс Samba в файле /etc/samba/smb.conf.
$ sudo vim /etc/samba/smb.conf
[global]
# Configure correct UTP
unix charset = UTF-8
# Change this to the workgroup/NT-domain name your Samba server will be part of
workgroup = WORKGROUP
interfaces = 127.0.0.0/8 eth0
bind interfaces only = yes
# Set share configuration at the end
[Docs]
path = /home/share
writable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777
Детали конфигурации:
- Docs – общее имя
- path = /home/share – каталог для обмена файлами
- guest ok = yes – включить гостевой доступ
- guest only = yes – все защищены как гости
- writable = yes – установить общий каталог как доступный для записи
- create mode = 0777 & directory mode = 0777 – разрешить доступ всем
Настроить безопасный общий ресурс Samba (рекомендуется)
Установите групповое владение общим каталогом Samba для группы sambashare.
sudo chgrp sambashare /home/share
Создайте пользователей самбы.
Замените user1 на пользователя с общим доступом samba для создания.
sudo useradd -M -d /home/share/user1 -s /usr/sbin/nologin -G sambashare user1
sudo mkdir /home/share/user1
sudo chown user1:sambashare /home/share/user1
sudo chmod 2770 /home/share/user1
Установите пароль пользователя и подтвердите его.
$ sudo smbpasswd -a user1
New SMB password:
Retype new SMB password:
Added user user1.
Включите учетную запись samba после установки пароля с помощью команды:
$ sudo smbpasswd -e user1
Enabled user user1.
Мы создали домашний каталог пользователя в родительском каталоге общего ресурса Samba и установили право собственности на общую группу samba.
Давайте создадим другого пользователя.
sudo useradd -M -d /home/share/smbadmin -s /usr/sbin/nologin -G sambashare smbadmin
sudo mkdir /home/share/smbadmin
sudo smbpasswd -a smbadmin
sudo smbpasswd -e smbadmin
sudo chown smbadmin:sambashare /home/share/smbadmin
sudo chmod 2770 /home/share/smbadmin
Настроить безопасный общий ресурс Samba.
[user1]
path = /home/share/user1
read only = no
browseable = no
force create mode = 0660
force directory mode = 2770
valid users = @user1 @sambashare
[smbadmin]
path = /home/share/smbadmin
read only = no
browseable = yes
force create mode = 0660
force directory mode = 2770
valid users = @sambashare @smbadmin
Перезапустите демон samba после внесения изменений.
sudo systemctl restart smbd nmbd
Убедитесь, что служба работает.
Если у вас есть активный брандмауэр, запустите:
sudo ufw allow 'Samba'
Шаг 3. Настройка клиентов Samba
Чтобы получить доступ к общему ресурсу Samba в системе Linux, вам необходимо установить и настроить клиент Samba.
---------- Установка клиента на Ubuntu / Debian ----
$ sudo apt -y install smbclient cifs-utils
---------- Установка клиента на CentOS / RHEL / Fedora ----
$ sudo yum -y install samba-client cifs-utils
$ sudo dnf -y install samba-client cifs-utils
Доступ к общему ресурсу Samba – временно
$ smbclient //sambaserver/share -U sambausername
Example:
$ smbclient //192.168.122.52/user1 -U user1
WARNING: The "syslog" option is deprecated
Enter WORKGROUP\user1's password:
Try "help" to get a list of possible commands.
smb: \> list
0: server=192.168.122.52, share=user1
smb: > ls
. D 0 Sun Jul 14 01:10:39 2019
.. D 0 Sun Jul 14 00:49:13 2019
latest.zip N 12121295 Tue Jun 18 10:52:03 2019
9544896 blocks of size 1024. 7918732 blocks available
smb: > pwd Current directory is \192.168.122.52\user1\
Вы можете смонтировать общий ресурс samba в каталог в вашей локальной системе Linux, используя опции типа mount и cifs.
$ mkdir -p ~/mounts/shares $ mount -t cifs -o username=user1 //192.168.122.52/user1 ~/mounts/shares $ df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 2.9G 38G 8% / devtmpfs 488M 0 488M 0% /dev tmpfs 496M 0 496M 0% /dev/shm tmpfs 496M 6.7M 489M 2% /run tmpfs 496M 0 496M 0% /sys/fs/cgroup tmpfs 100M 0 100M 0% /run/user/1000 //192.168.122.52/user1 9.2G 1.6G 7.6G 18% /home/itisgood
Монтирование samba с fstab
//192.168.122.52/user1 /mnt/shares cifs credentials=/.sambacreds 0 0
Затем я создал файл учетных данных.
$ cat /.sambacreds
username=user1
password=password
domain=WORKGROUP
Тест:
$ sudo mkdir -p /mnt/shares
$ sudo mount -a
$ df -hT | grep cifs
//192.168.122.52/user1 cifs 9.2G 1.6G 7.6G 18% /mnt/shares
Для компьютеров с Windows Desktop следуйте стандартному процессу монтирования общего ресурса Samba в Windows.
См. также:
- Как я могу увеличить уровень логов winbind или samba без перезапуска сервисов в Linux
- Медленная скорость Samba на Banana Pi BPi-R1 с OpenWrt Chaos Calmer
- Как смонтировать Samba шару на Debian / Ubuntu
- Разблокировать сетевые файлы, заблокированные Samba Linux / Unix Server
- Полезные команды samba