# Настройка Samba

## Настройка общей папки в Linux и Windows

### LINUX

Установка и настройка Samba-сервер для Linux состоит из следующих этапов:

1.Обновления информации о репозиториях и для существующих пакетов в системе:

`apt-get update && apt-get upgrade`

2.Установки пакета Samba:

`apt-get install -y samba samba-client`

3.Создания резервной копии файла конфигурации:

`cp /etc/samba/smb.conf /etc/samba/smb.conf_sample`

4.Создания директории для файлов, так чтобы все пользователи имели к ней доступ:

`mkdir -p /samba/public`

5.Создания каталога для всех пользователей:

`mkdir /media/samba/public`

6.Изменения прав доступа к каталогу:

`cd /samba`\
`chmod -R 0755 public`

{% hint style="info" %}
Важно! Для смены владельца и/или группы пользуемся командой **chown**
{% endhint %}

7.Создания директории для ограниченного круга лиц

8.Создания групп пользователей с применением системных инструментов:

`groupadd smbgrp`

9.Добавления пользователей Samba:

`useradd user1`

10.Внесения созданных пользователей в группу:

`usermod -aG smbgrp user1`

11.Изменения группы, к которой относится приватная директория:

`chgrp smbgrp /samba/private`

12.Создания с помощью инструментов Samba пароля для добавленного пользователя:

`smbpasswd -a user1`

13.Редактирования конфигурационного файла samba с помощью текстового редактора:

`nano /etc/samba/smb.conf`

Все строки из файла удаляются, а вместо них вставляются следующие:

`[global]`\
`workgroup = WORKGROUP`\
`security = user`\
`map to guest = bad user`\
`wins support = no`\
`dns proxy = no`\
`[public]`\
`path = /samba/public`\
`guest ok = yes`\
`force user = nobody`\
`browsable = yes`\
`writable = yes`\
`[private]`\
`path = /samba/private`\
`valid users = @smbgrp`\
`guest ok = no`\
`browsable = yes`\
`writable = yes`

Сохранения введенных строк с использованием комбинации клавиш **Ctrl + X**, затем с нажатием **Y и Enter**.

Названия строк при этом обозначают:

1. наименование одной из трех секций конфигурационного файла:&#x20;

* **global** – данная секция отвечает за общие настройки Samba-сервера;&#x20;
* **public и private** – секции, описывающие настройки директорий общего доступа;

2. пять параметров в секции global:&#x20;

* **workgroup** – наименование рабочей группы,&#x20;
* **security** – уровень безопасности сервера с авторизацией по паре логин/пароль при значении user,&#x20;
* **map to guest** - способ обработки запросов с отклонением неправильного пароля даже для существующего пользователя (значение bad user),&#x20;
* **wins support** – включение/выключение поддержки WINS,&#x20;
* **dns proxy** – обеспечение проксирования запросов к DNS;

3. настройки директорий в секциях:&#x20;

* **path** – полный путь до директории на жестком диске,&#x20;
* **guest ok** – возможность доступа к каталогу без пароля (гостевой),&#x20;
* **force user** – пользователь, ведущий работу с каталогом (для безопасности сервера используется значение nobody) ,&#x20;
* **browsable** - демонстрация конкретного каталога на сервере;&#x20;
* **writable** – право пользователя при значении “yes” переименовывать, добавлять, удалять, редактировать файлы и перемещать их в каталоги;&#x20;
* **valid users** – список пользователей с предоставленным доступом к каталогу.

14.Проверку настроек проводим командой:

`testparm -s`

15.Выполняем перезапуск сервера:

`service smbd restart`\
`service nmbd restart`

Для настройки межсетевого экрана нужно открыть в правилах TCP-порты 139 и 445, а также UDP-порты 137 и 138 (для подсетей с высоким уровнем доверия). Если нужно указать собственный диапазон адресов, значение после ключа “-s” заменяется:

`iptables -A INPUT -p tcp -m tcp --dport 445 -s 10.0.0.0/24 -j ACCEPT`\
`iptables -A INPUT -p tcp -m tcp --dport 139 -s 10.0.0.0/24 -j ACCEPT`\
`iptables -A INPUT -p udp -m udp --dport 137 -s 10.0.0.0/24 -j ACCEPT`\
`iptables -A INPUT -p udp -m udp --dport 138 -s 10.0.0.0/24 -j ACCEPT`

16.После перезагрузки сервера сохранить правила и применять их поможет пакет **iptables-persistent**. Для его установки вводится команда:

`apt-get install iptables-persistent`

Для сохранения существующих правил **iptables** введите команду:

`sudo netfilter-persistent save`

`iptables -L`

## Подключение к общей папке в Linux

Чтобы подключиться к общим папкам из среды Linux, понадобится установить отдельный пакет ПО - smbclient. Для этого вводим команду:

`sudo apt-get install smbclient`

Для подключения к серверу применяется команда:

`smbclient -U<Имя_пользователя><Имя_каталога_на_сервере>`

Эту команду не обязательно вводить каждый раз - для этого монтируем общую директорию как сетевой диск через установку пакета **cifs-utils**:

`sudo apt-get install cifs-utils`

и применяем шаблон:

`mount -t cifs -o username=<Имя_пользователя>,password= ///<Общий каталог> <Точка монтирования>`

{% hint style="info" %}
Важно! При подключении к общепользовательским папкам для Windows-сервера в не защищенных паролями директориях устанавливается имя пользователя “**Everyone**”, для Linux-сервера - “**nobody**”.
{% endhint %}

Подключение к общим папкам из среды Windows проводится по иной схеме. Для этого в проводнике или окне запуска программ (Windows + R), применяется шаблон:

`<имя_папки>`

Указанный только один IP-адрес сервера выдает список общих папок.

Если при подключении к Windows-серверу всплывает окно с требованием ввода учетной записи, в строку имени пользователя заносится **Everyone**, а пароль остается пустым.

Подключение к Linux-серверу из ОС Windows выполняется через шаблон <имя\_папки> или через адрес сервера.

### Как создать общий сетевой ресурс в Samba

Создание общего сетевого ресурса в Samba включает этапы:

–формирования директории, которую надо установить общедоступной:

`mkdir /home//`

–создания бэкапа для подстраховки:

`sudo cp /etc/samba/smb.conf ~`

–редактирования файла "/etc/samba/smb.conf":

`sudo nano /etc/samba/smb.conf`

–добавления в файл следующих сведений:

`[]`\
`path = /home//`\
`valid users =`\
`read only = no`

–после заполнения файла своими данными сохраняем введенные сведения и перезапускаем Samba:

`sudo service smbd restart`

–затем проверяем директорию smb.conf наличие неточностей:

`testparm`

–доступ к общему сетевому ресурсу предоставляется так:

`sudo apt-get install smbclient`\
\# Просмотр всех общих ресурсов:\
`smbclient -L /// -U`\
\# Подключение:\
`smbclient /// -U`

**Примечание 1:** Для подключения к вашему общему сетевому ресурсу задействуйте имя вашего пользователя () и пароль, который располагается в "smb:////"

Стоит запомнить, что "" значение переводится в "\[]", иначе говоря, в название общепользовательского ресурса, вписанного вами в "/etc/samba/smb.conf".

**Примечание 2:** Группа пользователей samba по умолчанию носит название "WORKGROUP".
