Samba — это программа которая представляет собой файловый сервер работающий по протоколу SMB/CIFS и позволяет предоставлять доступ к общим ресурсам в локальной сети для систем на базе Linux или Windows. Начиная с четвёртой версии, Samba может выступать в роли контроллера домена Active Directory и способна обслуживать все поддерживаемые версии Windows, в том числе и Windows 10.
Samba работает на всех популярных ОС — Windows, MacOS и Linux, полностью бесплатна и с открытым исходным кодом. В данной статье будет рассмотрена установка Samba в Debian 11, его настройка, а также подключение из операционной системы Windows 10.
Перед установкой Samba необходимо обновить список доступных пакетов в системе. Сделать это можно при помощи команды:
sudo apt update
Далее необходимо установить программу при помощи команды:
sudo apt -y install samba
На этом этапе установка Samba Debian 11 завершена.
Настройка Samba в Debian 11
Перед правкой конфигурационного файла Samba — smb.conf необходимо сделать его резервную копию чтобы в случае проблем можно было использовать конфигурационный файл по умолчанию. Для этого необходимо выполнить команду:
sudo cp /etc/samba/smb.conf{,backup}
Вместо .backup можно написать любое другое слово. Главное, чтобы вам было понятно, что данный файл будет использоваться при восстановлении. Чтобы использовать оригинальный файл для «отката» при выявлении проблем необходимо вернуть ему оригинальное имя — smb.conf а второй файл удалить.
Настройка общих параметров
В конфигурационном файле Samba присутствует блок с именем global, который начинается со строки [global]. Этот блок отвечает за глобальные настройки Samba (то есть настройки, которые в целом влияют на сервер Samba). На скриншотах ниже показаны параметры глобального блока:
Символ ; — точки с запятой установленный перед параметром означает что он закомментирован и не используется. Для использования необходимо удалить символ. Разберем основные параметры.
workgroup = WORKGROUP
Определяет рабочую группу, в которой сервер будет отображаться при запросе клиентов. Группа по умолчанию – WORKGROUP (для Windows), можно изменить её на другое имя при условии, что данная группа уже присутствует на необходимом компьютере.
interfaces = 127.0.0.0/8 eth0
Задаёт IP адрес и имя интерфейса, на котором будет работать Samba.
bind interfaces only = yes
Позволяет ограничивать интерфейсы на машине, обслуживающие запросы Samba. Работает вместе с параметром interfaces. Если выставлен yes то Samba будет принимать трафик только с интерфейса заданного в параметре interfaces.
log file = /var/log/samba/log.%m
Задаёт путь до лог файла, в который будут записываться все события Samba.
max log size = 1000
Задаёт максимальный размер лог файла в мегабайтах, указанного в параметре log file.
panic action = /usr/share/samba/panic-action %d
Опция предназначена для разработчиков. Позволяет запустить системную команду, когда Samba завершается с ошибками. Используется, в основном для того, чтобы привлечь внимание к возникшей проблеме.
server role = standalone server
Этот параметр определяет основной режим работы сервера Samba. По умолчанию выставлен как автономный сервер (т.е. сервер не относящийся к какому-либо контроллеру домена и не входящему в какой-либо домен).
obey pam restrictions = yes
Если Samba была сконфигурирована с поддержкой PAM данный параметр сообщает о том следует ли Samba использовать учетные записи модуля PAM. Поведение по умолчанию подразумевает использование PAM только для нешифрованной аутентификации и игнорирует директивы учетных записей и управление сессиями.
unix password sync = yes
Параметр позволяющий использовать встроенную утилиту smbpasswd. Если опция включена (yes), то Samba будет изменять пароли с помощью smbpasswd.
Настройка общей шары
Для предоставления доступа к общим ресурсам в Samba есть 2 способа разграничения прав доступа — предоставление анонимного доступа (доступа не требующего прохождения аутентификации, т.е. всем пользователям) и предоставление доступа только конкретным пользователям. Рассмотрим оба способа.
Для начала необходимо создать директорию, к которой необходимо предоставить доступ:
sudo mkdir -p /anonymous/files
Далее необходимо задать права и владельца на ранее созданную директорию для предоставления доступа. Сначала задаём права при помощи команды:
sudo chmod -R 0755 /anonymous/files
Потом задаём владельца и группу при помощи команды:
sudo chown -R nobody:nogroup /anonymous/files
После этого в файле конфигурации smb.conf необходимо вписать или привести к следующему виду блоки:
sudo nano /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = debian11
security = user
map to guest = bad user
dns proxy = no
[Anonymous]
path = /anonymous/files
browsable =yes
writable = yes
guest ok = yes
read only = no
Сохраните изменения и закройте файл. Далее необходимо проверить конфигурационный файл на наличие ошибок при помощи команды:
testparam
Если в выводе напротив параметра Loaded services file будет написано ОК это означает что конфигурационный файл успешно прошел проверку и не содержит ошибок.
Настройка защищённой шары
Чтобы предоставить доступа к файлам и папкам определенным пользователям необходимо также создать директорию:
sudo mkdir -p /files/samba/security
Далее необходимо создать группу, пользователей и добавить туда ранее созданных пользователей. Для этого необходимо выполнить следующие команды:
sudo groupadd security_users
sudo useradd sec1 -G security_users
Далее необходимо задать права и владельца на ранее созданную директорию при помощи команд:
sudo chown -R root:security_users /files/samba/security/
Теперь необходимо добавить ранее созданного пользователя в базу данных Samba и задать ему пароль при помощи встроенной утилиты Samba под названием smbpasswd:
sudo smbpasswd -a sec1
Далее необходимо добавить следующие строки в конфигурационный файл smb.conf:
sudo nano /etc/samba/smb.conf
[secured]
path = /files/samba/security
valid users = @sec1
guest ok = no
writable = yes
browsable = yes
Также не забывайте проверять конфигурационный файл на наличие ошибок после внесения любых изменений при помощи команды:
testparam
Если в выводе напротив параметра Loaded services file будет написано ОК это означает что конфигурационный файл успешно прошел проверку и не содержит ошибок. Для выхода из режима теста нажмите на клавишу Enter. Теперь настройка samba debian 11 завершена.
Подключение к серверу Samba
После проверки файла конфигурации на ошибки необходимо запустить сервисы Samba и включить их в автозагрузку при помощи следующих команд:
sudo systemctl start smbd.service
sudo systemctl enable smbd.service
sudo systemctl start nmbd.service
sudo systemctl enable nmbd.service
Для подключения к ресурсу без логина/пароля (анонимный доступ) в ОС Windows необходимо открыть программу «Выполнить» путем нажатия на сочетание клавиш Win+R. В открывшейся строке введите следующую команду и нажмите на ОК или клавишу Enter:
\\192.168.189.147
Где 192.168.189.147 — IP адрес компьютера, на котором запущена Samba:
В открывшемся окне найдите директорию, которая была создана для анонимного доступа. В качестве примера была задана директория Anonymous:
После перехода отобразится содержимое данной директории:
Для подключения при помощи логина и пароля необходимо точно также подключиться к серверу Samba как описано выше и выбрать ранее созданную директорию. В качестве примера была задана директория secured. Перейдите в необходимую директорию и отобразится диалогов окно с вводом логина и пароля:
После ввода логина и пароля пользователя отобразится ранее созданная директория и её содержимое:
Если при подключении из Windows система «не видит» адрес Samba сервера, то необходимо установить программу Avahi-daemon — систему, обеспечивающую обнаружение сервисов в локальной сети. Более подробное о данной системе можно прочитать в статье Ubuntu не видит сеть в Windows
Выводы
В данной статье вы узнали как выполняется установка и настройка Samba Debian 11. Samba обладает богатым функционалом который позволяет реализовать сетевой доступ до разных ресурсов — сетевых директорий, компьютеров, принтеров. Настройка реализуется через единственный конфигурационный файл что облегчает настойку программы. Если у вас остались вопросы задавайте их в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Samba — протокол для обмена информацией, его цель — реализация служб файлового доступа корпоративного уровня и их использование в ЛВС предприятия. Далее будет рассмотрен процесс конфигурирования Samba в Debian, состоящий из нескольких этапов.
Установка требуемых программных компонентов
Вначале нужно обновить кэш apt и поставить требуемые программные компоненты. Открываем терминал и вставляем:
sudo apt update
sudo apt install samba
В результате выполнения установятся Samba и необходимые зависимости.
Добавление пользователей
Когда установка завершена, создаём и настраиваем пользователей для доступа к ресурсам. Делается это так:
sudo useradd -m user1
Вместо «user1» нужно указать требуемое имя пользователя.
По завершению процесса создания необходимо задать ему пароль:
sudo passwd user1
И далее пользователю присваиваем группу Samba :
sudo smbpasswd -a user1
Подготовка общих папок
После создания и настройки пользователей создаём общие ресурсы, к которым у них будет доступ. Создадим папку share1 по пути /media
mkdir /media/share1
Далее правим файл конфигурации Samba текстовым редактором, в данном случае nano :
sudo nano /etc/samba/smb.conf
Этот файл используем для создания общих папок, прав доступа к ним и другие важные параметры службы. Создадим новый общий ресурс и определим права доступа к нему. Создадим папку «share1», выставим права доступа :
[share1]
path = /media/share1
read only = no
guest ok = no
valid users = user1
После внесения данных изменений папка «share1» будет доступна для чтения и записи пользователю user1.
Перезагрузка Samba
После изменения настроек для корректного применения изменений службу необходимо перезапустить:
sudo systemctl restart smbd.service
Данная команда перезапустит службу Samba и подтвердит все внесенные изменения в конфигурацию.
Проверка доступности
После настройки можно проверить доступ к общим папкам с другого хоста в сети. Для проверки с самого сервера можно воспользоваться утилитой smbclient, которую сначала нужно установить:
sudo apt install smbclient -y
И проверяем:
smbclient -U user1 //[IP_address|Server_name]/share1 -c 'ls'
Или открыв файловый менеджер на другом компьютере и введя в адресную строку:
\\Debian_server_IP\share1
«Debian_server_IP» — IP-адрес только что настроенного сервера.
Если все было выполнено правильно, то в результате должны увидеть содержимое папки «share1».
Заключение
Samba — это популярное программное обеспечение с открытым исходным кодом, которое позволяет обмениваться файлами и для организации совместной печати в сети с использованием протокола SMB (Server Message Block). В статье рассмотрены базовые настройки данного сервиса в ОС Debian Linux. Следуя этому пошаговому руководству, вы сможете настроить Samba на Debian и обеспечить обмен файлами между Linux и Windows системами.
191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700
300
ООО «ИТГЛОБАЛКОМ ЛАБС»
191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700
300
ООО «ИТГЛОБАЛКОМ ЛАБС»
Файловый сервер можно без преувеличения назвать средством первой необходимости, даже в сетях без выделенного сервера вы всегда обнаружите папки с общим доступом, но по мере роста объемов данных появляется потребность в отдельном решении. Вариантов его организации множество, одним из которых является служба Samba на Linux-сервере, это простое, недорогое, но в то же время мощное решение по организации общего доступа к файлам и папкам в Windows сетях. В данной статье мы рассмотрим настройку простого сервера на основе Samba 4 работающего в ОС Debian / Ubuntu.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Несмотря на то, что в данной статье в качестве ОС мы использовали Debain 9, все сказанное будет справедливо для любой ОС на базе Debian или Ubuntu, а с поправкой на работу пакетного менеджера — для любого Linux-дистрибутива. Также мы предполагаем, что читатель имеет базовые навыки работы с Linux-системами на базе Debian.
Подготовка системы
Прежде чем приступать к работе продумайте схему хранения данных и доступа к ним. Существую разные типы данных, которые мы будем характеризовать по интенсивности доступа к ним, скажем «холодные данные» отличаются тем, что обращения к ним происходят крайне редко (а к некоторым вообще никогда), но при этом они могут занимать значительные объемы. Это прежде всего резервные копии, инсталляционные пакеты, образа дисков и т.д. и т.п.
Противоположность им «горячие данные» — это данные которые интенсивно используются и изменяются, для файлового сервера примером таких данных может служить файловая информационная база 1С:Предприятия. Между ними находятся обычные данные, характер доступа к которым не имеет каких-либо особенностей.
Исходя из типа данных следует выбирать диски для хранения, для «горячих данных» это должны быть быстрые диски или SSD, а для «холодных» подойдут экономичные модели с упором на большой объем. Также не забывайте про RAID, для защиты данных от аппаратного выхода дисков из строя.
Продумайте структуру директорий и прав доступа к ним. Разумно будет исходить из следующих соображений: разделяйте диски с данными и системой, чтобы при необходимости можно было заменить их без лишних затруднений или перенести на другой сервер. Храните разные типы данных на разных дисках или разделах, скажем, если на разделе для резервных копий закончится свободное место, то это никак не повлияет на работу баз 1С.
В нашем примере мы будем использовать виртуальную машину с двумя жесткими дисками, один для системы, второй для данных, точку монтирования диска для данных мы указали как /samba, вы можете использовать другое имя и расположение.
Также обратите внимание на имя компьютера, Samba 4 будет использовать его в качестве NetBIOS имени.
После установки ОС следует изменить настройку лимита на количество одновременно открытых файлов, в Linux это 1024, а в Windows 16384. Для этого откройте файл /etc/security/limits.conf и добавьте в конце две строки:
* - nofile 16384
root - nofile 16384
После чего сервер следует перезагрузить.
Установка и базовая настройка Samba 4
Установка Samba предельно проста:
apt install samba
После чего откроем файл /etc/samba/smb.conf и выполним общие настройки. Большинство указанных опций в файле уже есть, многие из них даже не потребуется менять, но их назначение будет полезно знать, поэтому мы прокомментируем наиболее важные из них.
За общие настройки сервера отвечает секция [global], которая, кстати, прекрасно прокомментирована. Обратите внимание на два вида комментариев опций, если для этого используется символ # — то указанное значение применяется по умолчанию, а символ ; обозначает предлагаемый вариант настройки.
Начнем, опции перечисляются в порядке их следования в файле:
workgroup = WORKGROUP
Обозначает рабочую группу Windows, по умолчанию WORKGROUP.
; interfaces = 127.0.0.0/8 eth0
Следующая опция определяет интерфейсы или подсети, с которыми будет работать Samba. Допускается смешанная запись, как в примере выше, либо можно указать только интерфейсы:
interfaces = lo ens33
Или только подсети:
interfaces = 127.0.0.0/8 192.168.16.0/24
Но само по себе указание интерфейсов не ограничивает Samba, для того чтобы ограничения начали действовать нужно включить следующую опцию:
bind interfaces only = yes
Следующая опция указывает расположение логов:
log file = /var/log/samba/log.%m
По умолчанию лог выключен, для того чтобы его включить добавьте в файл опцию:
log level = 1
Если вам нужен более подробный лог — установите более высокий уровень, минимальное значение — 1, максимальное — 5.
Также закомментируйте опцию:
# syslog = 0
В настоящий момент она является не рекомендованной (deprecated).
server role = standalone server
Обозначает простой файловый сервер, не требующий подключения к домену.
map to guest = bad user
Определяет способ определения гостевого доступа, при указанном значении гостем будет считаться любой пользователь, который отсутствует в базе Samba. Также могут использоваться значения never — не использовать гостевой доступ и bad password — в этом случае гостем будет считаться, в том числе, и существующий пользователь если он неправильно введет пароль. Данное значение использовать не рекомендуется, так как при ошибке в пароле пользователь все равно получит доступ, но с гостевыми правами.
На этом общая настройка сервера закончена. Проверим конфигурацию на ошибки:
testparm
И перезапустим сервер
service smbd restart
Настройка общего ресурса с гостевым доступом
Начнем с самого простого варианта — создадим общий ресурс, доступ к которому может иметь любой пользователь. Для этого добавим в конец файла /etc/samba/smb.conf следующие строки.
[public]
comment = Shared for all
path = /samba/public
read only = no
guest ok = yes
В квадратных скобках задаем имя ресурса, все что ниже скобок — секция этого ресурса. В ней мы указали следующие опции:
- comment — описание ресурса, необязательный параметр;
- path — путь к директории;
- read only — режим только чтения, указываем no;
- guest ok — разрешен ли гостевой доступ, указываем yes;
Теперь создадим саму директорию:
mkdir /samba/public
и установим на нее необходимые права, для гостевого ресурса это 777:
chmod 777 /samba/public
Если у вас предполагается только гостевой доступ на этом можно остановиться, в случае наличия ресурсов с требованием аутентификации могут возникнуть проблемы. Дело в том с какими правами будут записаны файлы на общий ресурс, если не указано иного, то по умолчанию Samba использует 0744 для файлов и 0755 для директорий. Т.е. полный доступ остается только у владельца файла, остальные получают права только на чтение. Чтобы исправить это следует явно указать режим для новых файлов и папок, для этого добавим в секцию еще две строки:
create mode = 0777
directory mode = 0777
В этом случае итоговые права будут рассчитаны с учетом отображения прав доступа DOS в разрешения UNIX, что имеет некоторые особенности, в частности права на файлы будут установлены как 766 или rwx-rw-rw. Это значит, что запустить исполняемый файл сможет только тот, кто является его владельцем. Остальные получат сообщение об отсутствии прав доступа:
На файлы не являющиеся исполняемыми это никак не влияет, но оставлять этот момент без внимания тоже не следует. Вообще к возможности запускать файлы непосредственно с общего ресурса нужно относиться с осторожностью и в целях безопасности неплохо было бы вообще запретить эту возможность, для этого установите:
create mode = 0666
Это полностью снимет права на выполнение для всех, но оставит полный доступ к исполняемым файлам. Если же требуется разрешить возможность запуска, то вместо create mode следует использовать опцию force create mode, которая будет устанавливать разрешения без учета прав доступа DOS:
force create mode = 0777
Теперь перезапускаем Samba и пробуем получить доступ с любого Windows-клиента.
Если все сделано правильно, то сервер появится в сетевом окружении, и вы без проблем получите доступ к созданной нами общей папке.
Настройка общего ресурса с парольным доступом
Гостевой доступ это просто и удобно, но не всегда приемлемо. Существуют ситуации, когда доступ к общему ресурсу должны иметь только определенные пользователи. В нашем примере создадим два таких ресурса: для бухгалтерии и для IT-отдела.
Снова откроем конфигурационный файл и добавим в него две секции:
[buch]
path = /samba/buch
read only = no
guest ok = no[adm]
path = /samba/adm
read only = no
guest ok = no
Они предельно просты и отличаются запретом гостевого доступа — guest ok = no. Для того, чтобы разделить доступ к ресурсам будем использовать группы пользователей, создадим две новые группы для наших подразделений:
groupadd smbbuch
groupadd smbadm
Теперь создадим каталоги:
mkdir /samba/buch
mkdir /samba/adm
и изменим группу владельца:
chgrp smbbuch /samba/buch
chgrp smbadm /samba/adm
Затем установим права:
chmod 2770 /samba/buch
chmod 2770 /samba/adm
Значение 2770 обозначает что мы предоставляем полные права владельцу и группе, для остальных доступ запрещен. А первая двойка устанавливает SGID для каталога, что обеспечивает присвоение группы каталога каждому создаваемому в нем файлу.
В некоторых случаях определенный интерес представляет выставление для каталога sticky bit, который означает, что удалить или переименовать файл может только его владелец, но работать с ним, в том числе изменять, может любой пользователь, имеющий права записи в каталог. Для этого вместо набора прав 2770 используйте права 3770.
Не забываем указать права для вновь создаваемых файлов и директорий, здесь справедливо остается все то, о чем мы говорили выше. Например, можно использовать такой набор опций (с правом запуска исполняемых файлов):
force create mode = 0770
directory mode = 2770
Обратите внимание, что мы устанавливаем SGID только для каталогов, для файлов в данной схеме выставлять его не имеет смысла. А вот если вы установили sticky bit, то его нужно указать в обоих случаях:
force create mode = 1770
directory mode = 3770
Не забываем, что данные опции следует добавить в каждую секцию.
На этом настройки закончены, после чего следует сохранить конфигурационный файл и перезапустить Samba. Но в наших группах пока нет пользователей, давайте добавим их туда.
Начнем с уже существующих пользователей, в нашем случае это пользователь andrey, который является главным администратором и должен иметь доступ к обоим ресурсам. Поэтому добавим его в обе группы:
usermod -aG smbbuch andrey
usermod -aG smbadm andrey
Затем добавим его в базу Samba:
smbpasswd -a andrey
При этом потребуется установить пароль для доступа к Samba-ресурсам, он должен совпадать с основным паролем пользователя. После чего включим эту учетную запись:
smbpasswd -e andrey
Проверяем, после ввода пароля мы должны получить доступ к созданным нам ресурсам. Также обратите внимание, после аутентификации в списке общих ресурсов появилась папка с именем пользователя, подключенная только на чтение.
С настройками по умолчанию Samba предоставляет каждому существующему пользователю доступ только на чтение к его домашнему каталогу. На наш взгляд это довольно удобно и безопасно. Если вас не устраивает такое поведение — удалите из конфигурационного файла секцию [homes].
Теперь о других пользователях. Скажем у нас есть бухгалтер Иванова и админ Петров, каждый из которых должен иметь доступ к своему ресурсу. В то же время иметь доступ к самому Samba-серверу им необязательно, поэтому создадим новых пользователей следующей командой:
useradd -M -s /sbin/nologin ivanova
useradd -M -s /sbin/nologin petrov
Ключ -M заводит пользователя без создания домашнего каталога, а -s /sbin/nologin исключает возможность входа такого пользователя в систему.
Поместим каждого в свою группу:
usermod -aG smbbuch ivanova
usermod -aG smbadm petrov
Затем добавим их в базу Samba, при этом потребуется установить им пароли:
smbpasswd -a ivanova
smbpasswd -a petrov
И включим эти учетные записи
smbpasswd -e ivanova
smbpasswd -e petrov
Если все сделано правильно, то пользователь будет иметь доступ к своим ресурсам и не иметь к чужим.
Также обратите внимание, что несмотря на то, что общий ресурс с именем пользователя создан, доступ он к нему получить не сможет, так как физически его домашняя директория не существует.
Настройка общего ресурса со смешанным доступом
Теперь рассмотрим более сложную схему, ресурс со смешанным доступом. Например, вы хотите организовать общую папку с инсталляционными пакетами программ, которые может запустить каждый, но не хотите, чтобы кто-либо мог изменять его содержимое, оставив эту привилегию только участникам группы smbadm.
Добавим в конфигурационный файл следующую секцию:
[distr 1C]
path = /samba/distr-1c
read only = no
guest ok = yes
Здесь все понятно, стандартное описание ресурса. Теперь создадим директорию и изменим группового владельца:
mkdir /samba/distr-1c
chgrp smbadm /samba/distr-1c
Теперь подумаем о правах, владелец и группа adm должны иметь полный доступ — rwx (7) плюс установленный SGID для директорий, а остальные должны иметь право чтения и выполнения, т.е. r-x (5), для файлов следует использовать force create mode, иначе вместо желаемых 0775 вы получите 0764, все тоже самое, только без права выполнения для группы и остальных.
force create mode = 0775
directory mode = 2775
Перезапускаем Samba и проверяем, без аутентификации пользователь может только копировать и запускать файлы, а прошедшие проверку подлинности пользователи могут изменять и удалять содержимое общего ресурса.
Настройка скрытого общего ресурса
Еще одна часто встречающаяся задача — скрыть общий ресурс из отображаемого списка. Например, служебные ресурсы, используемые в административных целях. Нет ничего проще, достаточно добавить в секцию ресурса еще одну опцию:
browseable = no
После чего ресурс будет скрыт из отображения, но попасть в него можно будет явно указав путь к нему:
Во всем остальном такие ресурсы ничем не отличаются от обычных и к ним применимо все вышесказанное.
Настройка корзины для общего ресурса
Полезность корзины на файловом сервере, пожалуй, не будет отрицать никто. Человеку свойственно ошибаться и будет очень обидно, если ценой ошибки окажется несколько часов работы, но, к счастью, Samba позволяет помещать удаленные файлы в корзину.
Для активации корзины добавьте в секцию к общему ресурсу следующие строки:
vfs objects = recycle
recycle:repository = .recycle
recycle:versions = yes
recycle:keeptree = yes
Первая опция добавит в общий ресурс новый объект — корзину, вторая укажет ее расположение — скрытая папка в корне. Две следующих включают сохранение структуры папок при удалении и сохранение нескольких версий файла с одним и тем же именем. Это позволяет максимально обезопасить себя от ситуаций, когда в разных папках лежали одноименные файлы с разным содержимым или на место удаленного файла скопировали еще один такой же и тоже удалили.
Выше мы везде говорили о правах, корзина не исключение, если у вас включено сохранение структуры папок, то по умолчанию она будет создана с правами 0700, т.е. восстановить файл сможет только тот, кто его удалил. Рекомендуется изменить это поведение и установить права аналогичные указанным в directory mode, для этого добавим еще одну опцию (права указаны для директории buch):
recycle:directory_mode = 2770
Перезапустим Samba и попробуем что-нибудь удалить.
Несмотря на грозное предупреждение Проводника удаляемые файлы перемещаются в корзину, откуда мы их можем восстановить.
Как видим, работать с Samba не просто, а очень просто, при том, что мы оставили за кадром многие возможности тонкой настройки, многие из которых требуют отдельных статей. Надеемся, что данный материал окажется вам полезным и поможет быстро и без проблем развернуть файловый сервер на Linux.
Также рекомендуем ознакомиться со статьей Linux — начинающим. Часть 4. Работаем с файловой системой. Теория для более подробного ознакомления с системой прав файловой системы Linux.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
This tutorial intends to teach you to Install and Configure Samba File Sharing on Debian 12 Booworm. Also, you will learn to Set up Samba Clients on both Windows and Linux.
Samba is a powerful tool that allows you to create seamless file and printer sharing to SMB/CIFS clients from a Linux server/desktop.
Debian 12 ships with the Samba version 4.17.
- Install and Configure Samba File Sharing on Debian 12 Booworm
Install and Configure Samba File Sharing on Debian 12 Booworm
To set up a Samba server on Debian 12, you must have access to your server as a non-root user with sudo privileges and set up a basic firewall. To do this, you can follow this guide on Initial Server Setup with Debian 12 Bookworm.
Now proceed to the following steps to start your Samba server installation and configuration.
Step 1 – How To Install Samba with APT on Debian 12?
The smbclient is a tool that allows you to access Samba from the command line. You can install this package by using your APT on Debian 12.
First, run the system update with the following command:
sudo apt update
Then, use the following command to install your Samba packages:
sudo apt install samba smbclient cifs-utils
This will install all the dependencies and required packages for Samba.
Verify your installation by checking its version:
samba --version
Output
Version 4.17.9-Debian
At this point, you need to make some changes to the Samba config file and create share Samba directories.
Where is the Samba file on Debian?
The Samba configuration file can be found at the /etc/samba/smb.conf directory.
Set Samba Global Settings
At this point, you need to open the Samba configuration file with your favorite text editor, here we use vi editor:
sudo vi /etc/samba/smb.conf
Under the Global section, find the line below and make sure it is like this:
workgroup = WORKGROUP
When you are done, save and close the file.
Create Shared Samba Directory
At this point, you can share both public and private directories. So you can create the two directories by using the following commands:
# sudo mkdir /public
# sudo mkdir /private
Now you need to open the Samba config file again and add the shares and authentication methods to the end of the file.
sudo vi /etc/samba/smb.conf
[public]
comment = Public Folder
path = /public
writable = yes
guest ok = yes
guest only = yes
force create mode = 775
force directory mode = 775
[private]
comment = Private Folder
path = /private
writable = yes
guest ok = no
valid users = @smbshare
force create mode = 770
force directory mode = 770
inherit permissions = yes
When you are done, save and close the file.
At this point, you need the Samba share user group to access the Private share as specified in the config file above.
Create the group by using the command below:
sudo groupadd smbshare
Set the correct permissions for the private and public share by using the commands below:
# sudo chgrp -R smbshare /private/
# sudo chgrp -R smbshare /public
Next, set the correct permissions for the directories:
# sudo chmod 2770 /private/
# sudo chmod 2775 /public
Note: The value 2 at the beginning of the above commands, stands for the SGID bit. This allows newly created files to inherit the parent group.
Now you should create a no-login local user to access the private share by using the command below:
sudo useradd -M -s /sbin/nologin sambauser
Then, add the user to the Samba share group on Debian 12 with the following command:
sudo usermod -aG smbshare sambauser
Finally, set a password for your Samba user:
sudo smbpasswd -a sambauser
Output
New SMB password:
Retype new SMB password:
Added user sambauser.
Enable the created account by using the following command:
sudo smbpasswd -e sambauser
Output
Enabled user sambauser.
Verify Samba Configuration
When you are done with the above steps, you can test your Samba configuration on Debian 12 that is working correctly or not with the following command:
sudo testparm
Output
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed by GnuTLS (e.g. NTLM as a compatibility fallback)
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
# Global parameters
[global]
log file = /var/log/samba/log.%m
logging = file
map to guest = Bad User
max log size = 1000
obey pam restrictions = Yes
pam password change = Yes
panic action = /usr/share/samba/panic-action %d
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
passwd program = /usr/bin/passwd %u
server role = standalone server
unix password sync = Yes
usershare allow guests = Yes
idmap config * : backend = tdb
[homes]
browseable = No
comment = Home Directories
create mask = 0700
directory mask = 0700
valid users = %S
[printers]
browseable = No
comment = All Printers
create mask = 0700
path = /var/tmp
printable = Yes
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
[public]
comment = Public Folder
force create mode = 0775
force directory mode = 0775
guest ok = Yes
guest only = Yes
path = /public
read only = No
[private]
comment = Private Folder
force create mode = 0770
force directory mode = 0770
inherit permissions = Yes
path = /private
read only = No
valid users = @smbshare
This means that everything is configured appropriately.
At this point, you can create demo files in the Samba shares. To do this. you can run the following commands:
# sudo mkdir /private/demo-private /public/demo-public
# sudo touch /private/demo1.txt /public/demo2.txt
How To Restart Samba Service?
To apply the changes, restart the Samba service on Debian 12:
sudo systemctl restart nmbd
Configure Firewall for Samba
If you have a firewall running, you need to allow remote access from the specified IP range as shown below:
sudo ufw allow from 192.168.205.0/24 to any app Samba
Before you set up Samba clients, you can try accessing your share files with the command below on Debian 12:
smbclient '\\localhost\private' -U sambauser
Output
Password for [WORKGROUP\sambauser]:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Thu Jul 13 05:09:10 2023
.. D 0 Thu Jul 13 05:03:52 2023
demo1.txt N 0 Thu Jul 13 05:09:10 2023
demo-private D 0 Thu Jul 13 05:08:59 2023
50971500 blocks of size 1024. 45052604 blocks available
smb: \>
At this point, we want to show you access to the share from Windows. First, open a run box using Win+R and enter your Debian 12 IP address in the box and click Ok:
Then, the Samba shared folders on Debian 12 should appear as below:
You can open one of the files, and create a new file there. You should see the file on your server machine too.
At this point, you can mount the Samba share permanently on your Windows system. Click on This PC->Map Network Drive. This will open a window for you, provide the Path details and click Finish.
Then, enter the Samba user credentials and click ok.
You will have the share available on your This PC.
Step 4 – Set up Samba Linux Client
At this point, you can access the share folders from a Linux client. To do this, you need to have Samba packages installed on your server. Here our Linux client is Debian 12:
sudo apt install samba-client cifs-utils
Then, navigate to File Manager ->Other locations and add your share using the syntax below.
smb://server-name/Share_name
Enter the credentials for the Samba user. That is it! You have your Samba share on your Linux client machine.
For more information, you can visit the Samba Documentation page.
Conclusion
At this point, you have learned to Install and Configure Samba Sharing File on Debian 12 Bookworm. And also, you have learned to set up Samba clients on both Windows and Linux machines. Hope you enjoy it. You may be interested in these articles:
How To Install AnyDesk on Debian 12 Bookworm
Stress Test and Benchmark CPU Performance Debian
Intro
Samba is a protocol for exchanging information, its purpose is to implement enterprise-level file access applications and operate them on an enterprise LAN. Next, we’ll walk through the process of configuring Samba on Debian, which consists of several steps.
Installing additional applications
First you need to update the apt cache and install the required software components. Open terminal and paste:
sudo apt update
sudo apt install samba
The command above will install necessary packages with their dependencies.
Manage Users
When deploy complete, we make and setup consumer to gain resources.
Do it:
sudo useradd -m user1
Change «user1» with the actual username
Upon completion of the creation process, we should create a password:
sudo passwd user1
And then assign the Samba group:
sudo smbpasswd -a user1
Preparing Shared Catalogs
After creating and configuring users, we create shares to which they will have access. Create a folder share1 along the path / media
mkdir /media/share1
Next, edit the Samba configuration file with a text editor, in this case nano:
sudo nano /etc/samba/smb.conf
It is used for creation shared folders, grant access to them, and other important service settings.
Now make new resource and define access rights to it.
Make a folder «share1», set permissions for user1:
[share1]
path = /media/share1
read only = no
guest ok = no
valid users = user1
After making these, directory «share1» will be accessible for user1.
Restart Samba
After changing the settings, the service should be restarted:
sudo systemctl restart smbd.service
This command will restart the Samba service and commit any changes made to the configuration.
Availability check
Once configured, you can test access to shared folders from another host on the network. To check from the server itself, you can use the smbclient utility, which should first be installed:
sudo apt install smbclient -y
And then verify:
smbclient -U user1 //[IP_address|Server_name]/share1 -c 'ls'
Or by opening the file manager on another computer and typing in the address bar:
\\Debian_server_IP\share1
«Debian_server_IP» is the IP address of the newly configured server.
If everything was done correctly, then as a result you should see the contents of the «share1» folder.
Conclusion
Samba is a file sharing and network sharing tool.
The article describes the basic settings of this service in Debian Linux OS.
You may be also interested in
- Configuring Samba on Linux and Windows
- More Debian instructions
- Cloud Debian Server
1101
CT Amsterdam
The Netherlands, Herikerbergweg 292
+31 20 262-58-98
700
300
ITGLOBAL.COM NL
1101
CT Amsterdam
The Netherlands, Herikerbergweg 292
+31 20 262-58-98
700
300
ITGLOBAL.COM NL