Настройка samba debian для windows

Samba — это программа которая представляет собой файловый сервер работающий по протоколу SMB/CIFS и позволяет предоставлять доступ к общим ресурсам в локальной сети для систем на базе Linux или Windows. Начиная с четвёртой версии, Samba может выступать в роли контроллера домена Active Directory и способна обслуживать все поддерживаемые версии Windows, в том числе и Windows 10.

Samba работает на всех популярных ОС — Windows, MacOS и Linux, полностью бесплатна и с открытым исходным кодом. В данной статье будет рассмотрена установка Samba в Debian 11, его настройка, а также подключение из операционной системы Windows 10.

Перед установкой Samba необходимо обновить список доступных пакетов в системе. Сделать это можно при помощи команды:

sudo apt update

JIu08kcP5HGA8gAAEILCQBBOFCDjtOQwACEBiKwOJIIxTgUPcQ7UIAAhCAwDQJIAinSZu+IAABCCwOgfHFzcbn0eLcjXgKAQhAAAKVBBCE3BwQgAAEIDAHBBZnbuIcDAYmQgACEIDAiAggCEc0mLgCAQhAAAIQgAAEIAABCECgDQEEYRtalIUABCAAgQ0iMD9zE4llbtAtQrcQgAAEIBBFAEEYhY1KEIAABCAAAT+B+ZGujCAEIAABCEBgMkEQchdAAAIQgAAEIAABCEAAAhBYUAIIwgUdeNyGAAQgAAEIQAACEIAABCCAIOQegAAEIAABCEAAAhCAAAQgsKAEEIQLOvC4DQEIQAACEIAABCAAAQhA4P8DPoV5Y3ZzP5kAAAAASUVORK5CYII=

Далее необходимо установить программу при помощи команды:

sudo apt -y install samba

wG2ZyLPD3u9cQAAAABJRU5ErkJggg==

На этом этапе установка Samba Debian 11 завершена.

Настройка Samba в Debian 11

Перед правкой конфигурационного файла Samba — smb.conf необходимо сделать его резервную копию чтобы в случае проблем можно было использовать конфигурационный файл по умолчанию. Для этого необходимо выполнить команду:

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

Вместо .backup можно написать любое другое слово. Главное, чтобы вам было понятно, что данный файл будет использоваться при восстановлении. Чтобы использовать оригинальный файл для «отката» при выявлении проблем необходимо вернуть ему оригинальное имя — smb.conf а второй файл удалить.

Настройка общих параметров

В конфигурационном файле Samba присутствует блок с именем global, который начинается со строки [global]. Этот блок отвечает за глобальные настройки Samba (то есть настройки, которые в целом влияют на сервер Samba). На скриншотах ниже показаны параметры глобального блока:

X6ChODKAAAAAElFTkSuQmCC

JrAFJEACJEACJQlogqmhDrqSprVUdlXg+XxOGa9R1TR5S7WTxpAACZAACXQQAXoIO6iz2VQSIAESsBIwSpShcq5Vpq80TyB1YGV6lg0hARIggYoQoIewIh3JZpAACZBA4whkA0o56a0AXQ0apWABhsxCAiRAAiTQdAIUhE1HzApIgARIoD0JZAUMZaFPTzI01IcS05AACZAACbQKAQrCVukJ2kECJEACrUrAqAwpDrXuygJhtG2rjmjaRQIkQAIkoBCgIORwIAESIAES8CQgFY6UiKo3rHOWopHaT11CNAvHkyqTkQAJkAAJkMBQEqAgHEr6rJsESIAE2pyAcV6cvtNCm7cR5ue1SDSfnsD272G2gARIgAQ6mAAFYQd3PptOAiRAAo0k0DnSiAqwkeOGZZEACZAACQwtAQrCoeXP2kmABEigegSq5zerXouqN+rYIhIgARIggYIEKAgLgmM2EiABEiCBwSHQOXMTB4cnayEBEiABEiABlQAFIccDCZAACZAACZAACZAACZAACXQoAQrCDu14NpsESIAE2oVA+8xNpC+zXcYU7SQBEiABEkgIUBByNJAACZAACZBAQwi0j3RtSHNZCAmQAAmQQCUIUBBWohvZCBIgARIgARIgARIgARIgARKonwAFYf3MmIMESIAESIAESIAESIAESIAEKkGAgrAS3chGkAAJkAAJkAAJkAAJkAAJkED9BCgI62fGHCRAAiRAAiRAAiRAAiRAAiRQCQIUhJXoRjaCBEiABEiABEiABEiABEiABOon8P8BrXB6Dcyy2wEAAAAASUVORK5CYII=

x+34z1O3jMC4QAAAABJRU5ErkJggg==

Символ ; — точки с запятой установленный перед параметром означает что он закомментирован и не используется. Для использования необходимо удалить символ. Разберем основные параметры.

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

D8SmvWbCmGXxgAAAABJRU5ErkJggg==

Далее необходимо задать права и владельца на ранее созданную директорию для предоставления доступа. Сначала задаём права при помощи команды:

sudo chmod -R 0755 /anonymous/files

Az0TMEEBPHOTAAAAAElFTkSuQmCC

Потом задаём владельца и группу при помощи команды:

sudo chown -R nobody:nogroup /anonymous/files

psMeeI75tw0AAAAASUVORK5CYII=

После этого в файле конфигурации 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

8MeYwGfUzwOAAAAAElFTkSuQmCC

Сохраните изменения и закройте файл. Далее необходимо проверить конфигурационный файл на наличие ошибок при помощи команды:

testparam

weXxHZNpFT26gAAAABJRU5ErkJggg==

Если в выводе напротив параметра Loaded services file будет написано ОК это означает что конфигурационный файл успешно прошел проверку и не содержит ошибок.

Настройка защищённой шары

Чтобы предоставить доступа к файлам и папкам определенным пользователям необходимо также создать директорию:

sudo mkdir -p /files/samba/security

B6H7deMNHSvhAAAAAElFTkSuQmCC

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

sudo groupadd security_users

w8dV5B6lirqEgAAAABJRU5ErkJggg==

sudo useradd sec1 -G security_users

Y0ALEEAAAQQQqBfghoQcCwgggAACWRUgEGaVm8oQQAABBBAIrICEVR4IIIAAArkmQCDMtRGlPwgggAACQRbgDvVBHj3ajgACCARQgEAYwEGjyQgggAACCPggIGGVBwIIqBJgCl6VLOUmEyAQJhPidQQQQAABBBBAAAEEEEAgRwUIhDk6sHQLAQQQQCDAAkwVBHjwaDoC6QkwBZ+eG3tlLkAgzNyQEhBAAAEEEMgTAS6CmicDTTcRQCCPBAiEeTTYdBUBBBBAIDgCTBIGZ6xoKQIIIBBkAQJhkEePtiOAAAIIIJBVAS6CmlVuKkMAAQSyIEAgzAIyVSCAAAIIIJCSALkrJS42RgABBBBIX4BAmL4deyKAAAIIIIAAAggggAACgRb4fwg1Fz1KpMXTAAAAAElFTkSuQmCC

Далее необходимо задать права и владельца на ранее созданную директорию при помощи команд:

sudo chown -R root:security_users /files/samba/security/

OL7rMHbPU9wAAAABJRU5ErkJggg==

Теперь необходимо добавить ранее созданного пользователя в базу данных Samba и задать ему пароль при помощи встроенной утилиты Samba под названием smbpasswd:

sudo smbpasswd -a sec1

9yaoiYCXk5hNuUEeTCUPmwMTHVDe6TR0IIIAAAskQIBAmQ5UyEUAAAQRCCsQ2t5VoTDMf6lYWxt0sfKkpcSEp6b10FgitUTBxnUv0YFAeAggggECKBQiEKR4AqkcAAQSyQyDklUhTOm1odQ9574p4BibpmTBM44xgWyXemsie0Y4Hln0RQAABBBItUD3RBVIeAggggAACEQUCAlNCJ+giVp5GG1gDnpPnVboWoBqQydNIgaYigAACCCRRgBnCJOJSNAIIIICArUDIiJKqybWMGauAmUByYMaMLB1BAAEEkiLADGFSWCkUAQQQQCAageAFpZz0Fo2ff9sANKJgDIbsggACCGSdAIEw64acDiOAAAJeFQgOMMRCJ2PF0lAnSmyDAAIIIBBagEDIkYEAAggg4DWBkMmQcBgwTMEgrLb12pFMexBAAIE0ECAQpsEg0UQEEEAgWwXMhGNGROtsWPZcisbMftZLiAbjZOthQr8RQAABBOIQIBDGgceuCCCAAAJuC4Q8Ly7wTgtuNyrx9YXrkdF9ZgITL06JCCCAQNYKEAizdujpOAIIIJDuAtkTjUiA6X6s0n4EEEDAuwIEQu+ODS1DAAEEEHAmkHnzZpnXI2cjyVYIIIAAAq4LEAhdJ6dCBBBAAAFvC2TPuYneHgdahwACCCDghgCB0A1l6kAAAQQQQAABBBBAAAEEPChAIPTgoNAkBBBAAIFUCqTPuYnMZabyOKFuBBBAIDMECISZMY70AgEEEEAgCwXSJ7pm4eDQZQQQQCBNBAiEaTJQNBMBBBBAAAEEEEAAAQQQSLQAgTDRopSHAAIIIIAAAggggAACCKSJAIEwTQaKZiKAAAIIIIAAAggggAACiRYgECZalPIQQAABBBBAAAEEEEAAgTQRIBCmyUDRTAQQQAABBBBAAAEEEEAg0QIEwkSLUh4CCCCAAAIIIIAAAgggkCYCBMI0GSiaiQACCCCAQFgBbkjIwYEAAgggEKMAgTBGOHZDAAEEEEAAAQcCCqs8EEAAAQS8K0Ag9O7Y0DIEEEAAAQScCXCHemdObIUAAgggECRAIOSgQAABBBBAAIHkCSis8kAAgWQJMAWfLNlsKpdAmE2jTV8RQAABBBBAAAEEEEAAAYsAgZDDAQEEEEAAgcwQYKogM8aRXiAQhQBT8FFgsWkYAQIhhwYCCCCAAAIIJFWAi6AmlZfCEUAAgbgECIRx8bEzAggggAACXhJgktBLo0FbEEAAgXQQIBCmwyjRRgQQQAABBNJYgIugpvHg0XQEEMh4AQJhxg8xHUQAAQQQyBIBcleWDDTdRAABBBIpQCBMpCZlIYAAAggggAACCCCAAAJpJEAgTKPBoqkIIIAAAgjYC3j58i1ebhvHFQIIIJC9AgTC7B17eo4AAgggkHECrBrNuCGlQwgggECSBQiESQameAQQQAABBBDwCRBWOQ4QQAABLwoQCL04KrQJAQQQQAABBBBAAAEEEHBB4P8BRGGZ8uymWNIAAAAASUVORK5CYII=

Далее необходимо добавить следующие строки в конфигурационный файл smb.conf:

sudo nano /etc/samba/smb.conf

[secured]
path = /files/samba/security
valid users = @sec1
guest ok = no
writable = yes
browsable = yes

w+e5mcns55yvAAAAABJRU5ErkJggg==

Также не забывайте проверять конфигурационный файл на наличие ошибок после внесения любых изменений при помощи команды:

testparam

weXxHZNpFT26gAAAABJRU5ErkJggg==

Если в выводе напротив параметра 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

h2kBAgggYIkAgdCSjqKaCCCAQCsKtE40IgG24v5NmxFAAIFGECAQNkIvUAcEEEAAgWSB5hs3a74WsQ8jgAACCFgpQCC0stuoNAIIIICAiUDrnJtoosS6CCCAAAKtIEAgbIVepo0IIIAAAggggAACCCCAQIQAgZDdAgEEEECg5QTsOTeRscyW2zlpMAIIIFBnAQJhncHZHAIIIIAAAtkF7Imu2dvEkggggAACjSRAIGyk3qAuCCCAAAIIIIAAAggggEAdBQiEdcRmUwgggAACCCCAAAIIIIBAIwkQCBupN6gLAggggAACCCCAAAIIIFBHAQJhHbHZFAIIIIAAAggggAACCCDQSAIEwkbqDeqCAAIIIIAAAggggAACCNRRgEBYR2w2hQACCCCAAAIIIIAAAgg0kgCBsJF6g7oggAACCCAQLcANCdkzEEAAAQRqIkAgrAkrhSKAAAIIINAyAhJWeSCAAAII2CpAILS156g3AggggEArCXCH+lbqbdqKAAII1FGAQFhHbDaFAAIIIIBAEwpIWOWBAAK1EmAIvlaylFsWIBCyLyCAAAIIIIAAAggggAACLSpAIGzRjqfZCCCAAAIWCjBUYGGnUWUEzAQYgjfzY+10AQJhuhFLIIAAAggggECiABdBZQdBAAEEbBUgENrac9QbAQQQQKAlBRgkbMlup9EIIIBAzQT+P1tKaV2Hc8jRAAAAAElFTkSuQmCC

Для подключения к ресурсу без логина/пароля (анонимный доступ) в ОС Windows необходимо открыть программу «Выполнить» путем нажатия на сочетание клавиш Win+R. В открывшейся строке введите следующую команду и нажмите на ОК или клавишу Enter:

\\192.168.189.147

Где 192.168.189.147 — IP адрес компьютера, на котором запущена Samba:

wEXzYndBZImgwAAAABJRU5ErkJggg==

В открывшемся окне найдите директорию, которая была создана для анонимного доступа. В качестве примера была задана директория Anonymous:

BzK7MkUXpMh9AAAAAElFTkSuQmCC

После перехода отобразится содержимое данной директории:

+8S7rzRDyQAAAAASUVORK5CYII=

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

wPHgkrn57vmBQAAAABJRU5ErkJggg==

После ввода логина и пароля пользователя отобразится ранее созданная директория и её содержимое:

8Tk8Bxg4uFtWoAAAAASUVORK5CYII=

Если при подключении из Windows система «не видит» адрес Samba сервера, то необходимо установить программу Avahi-daemon — систему, обеспечивающую обнаружение сервисов в локальной сети. Более подробное о данной системе можно прочитать в статье Ubuntu не видит сеть в Windows

Выводы

В данной статье вы узнали как выполняется установка и настройка Samba Debian 11. Samba обладает богатым функционалом который позволяет реализовать сетевой доступ до разных ресурсов — сетевых директорий, компьютеров, принтеров. Настройка реализуется через единственный конфигурационный файл что облегчает настойку программы. Если у вас остались вопросы задавайте их в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

Статья распространяется под лицензией 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-debian-000.pngФайловый сервер можно без преувеличения назвать средством первой необходимости, даже в сетях без выделенного сервера вы всегда обнаружите папки с общим доступом, но по мере роста объемов данных появляется потребность в отдельном решении. Вариантов его организации множество, одним из которых является служба 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-debian-001.png

Также обратите внимание на имя компьютера, 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. Это значит, что запустить исполняемый файл сможет только тот, кто является его владельцем. Остальные получат сообщение об отсутствии прав доступа:

samba-debian-006.pngНа файлы не являющиеся исполняемыми это никак не влияет, но оставлять этот момент без внимания тоже не следует. Вообще к возможности запускать файлы непосредственно с общего ресурса нужно относиться с осторожностью и в целях безопасности неплохо было бы вообще запретить эту возможность, для этого установите:

create mode = 0666

Это полностью снимет права на выполнение для всех, но оставит полный доступ к исполняемым файлам. Если же требуется разрешить возможность запуска, то вместо create mode следует использовать опцию force create mode, которая будет устанавливать разрешения без учета прав доступа DOS:

 force create mode = 0777

Теперь перезапускаем Samba и пробуем получить доступ с любого Windows-клиента.

samba-debian-002.pngЕсли все сделано правильно, то сервер появится в сетевом окружении, и вы без проблем получите доступ к созданной нами общей папке.

Настройка общего ресурса с парольным доступом

Гостевой доступ это просто и удобно, но не всегда приемлемо. Существуют ситуации, когда доступ к общему ресурсу должны иметь только определенные пользователи. В нашем примере создадим два таких ресурса: для бухгалтерии и для 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-debian-003.png

С настройками по умолчанию 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

Если все сделано правильно, то пользователь будет иметь доступ к своим ресурсам и не иметь к чужим.

samba-debian-004.pngТакже обратите внимание, что несмотря на то, что общий ресурс с именем пользователя создан, доступ он к нему получить не сможет, так как физически его домашняя директория не существует.

Настройка общего ресурса со смешанным доступом

Теперь рассмотрим более сложную схему, ресурс со смешанным доступом. Например, вы хотите организовать общую папку с инсталляционными пакетами программ, которые может запустить каждый, но не хотите, чтобы кто-либо мог изменять его содержимое, оставив эту привилегию только участникам группы 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-debian-007.pngВо всем остальном такие ресурсы ничем не отличаются от обычных и к ним применимо все вышесказанное.

Настройка корзины для общего ресурса

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

Для активации корзины добавьте в секцию к общему ресурсу следующие строки:

vfs objects = recycle
recycle:repository = .recycle
recycle:versions = yes
recycle:keeptree = yes

Первая опция добавит в общий ресурс новый объект — корзину, вторая укажет ее расположение — скрытая папка в корне. Две следующих включают сохранение структуры папок при удалении и сохранение нескольких версий файла с одним и тем же именем. Это позволяет максимально обезопасить себя от ситуаций, когда в разных папках лежали одноименные файлы с разным содержимым или на место удаленного файла скопировали еще один такой же и тоже удалили.

Выше мы везде говорили о правах, корзина не исключение, если у вас включено сохранение структуры папок, то по умолчанию она будет создана с правами 0700, т.е. восстановить файл сможет только тот, кто его удалил. Рекомендуется изменить это поведение и установить права аналогичные указанным в directory mode, для этого добавим еще одну опцию (права указаны для директории buch):

recycle:directory_mode = 2770

Перезапустим Samba и попробуем что-нибудь удалить.

samba-debian-005.pngНесмотря на грозное предупреждение Проводника удаляемые файлы перемещаются в корзину, откуда мы их можем восстановить.

Как видим, работать с 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:

Run Box, open Samba share

Run Box

Then, the Samba shared folders on Debian 12 should appear as below:

Samba Shared Folders

Shared Folders

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.

Map Samba Network Folder

Map Samba Network Folder

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

  • Настройка radius server на windows 2016 для wifi
  • Настройка ntp сервера windows server 2019
  • Настройка realtek pcie gbe family controller для windows 10
  • Настройка pycharm для python windows
  • Настройка realtek hd windows 10 для наушников