System Config Samba
Графический интерфейс (GUI) способен во многом облегчить процесс настройки Samba в Ubuntu. Как минимум, пользователю, который только перешел на Linux, этот способ покажется более понятным.
Шаг 1: Установка
Изначально нужно установить специальную программу в систему, которая обладает интерфейсом и которая необходима для осуществления настройки. Сделать это можно с помощью «Терминала», выполнив команду:
Если до этого вы не устанавливали все компоненты Samba себе на компьютер, вам нужно будет вместе с ней загрузить и установить еще некоторые пакеты:
После того как все необходимое было установлено, можно переходить непосредственно к настройке.
Шаг 2: Запуск
Запустить System Config Samba можно двумя способами: с помощью «Терминала» и через меню Bash.
Способ 1: Терминал
Если вы решили использовать «Терминал», то вам необходимо сделать следующее:
- Нажмите сочетание клавиш Ctrl+Alt+T.
- Введите следующую команду:
- Нажмите Enter.
Далее вам потребуется ввести системный пароль, после чего откроется окно программы.
Способ 2: Меню Bash
Второй способ многим покажется проще, так как все операции выполняются в графическом интерфейсе.
- Нажмите на кнопку меню Bash, которая находится в верхнем левом углу рабочего стола.
Введите в открывшемся окне поисковой запрос «Samba».</li>
Нажмите по одноименной программе в разделе «Приложения».</li>
</ol>
После этого система запросит у вас пароль пользователя. Введите его и программа откроется.
Шаг 3: Добавление пользователей
Перед тем как приступать непосредственно к настройке папок Samba нужно добавить пользователей. Делается это через меню настроек программы.
- Нажмите по пункту «Настройка» на верхней панели.
В меню выберите пункт «Пользователи Samba».</li>
В появившемся окне нажмите «Добавить пользователя».</li>
В выпадающем списке «Имя пользователя Unix» выберите пользователя, которому будет разрешено входить в папку.</li>
Вручную введите имя пользователя Windows.</li>
Введите пароль, а затем повторите его ввод в соответствующем поле.</li>
Нажмите кнопку «ОК».</li></ol>
Таким образом вы можете добавить одного или нескольких пользователей Samba, а в будущем определить их права.
Шаг 4: Настройка сервера
Теперь нужно приступить к настройке сервера Samba. Это действие выполняется на порядок проще в графическом интерфейсе. Вот что нужно сделать:
- В главном окне программы нажмите по пункту «Настройка» на верхней панели.
Из списка выберите строку «Параметры сервера».</li>
В появившемся окне, во вкладке «Основной», введите в строке «Рабочая группа» название группы, все компьютеры которой смогут подключаться к серверу Samba.
</li>Введите описание группы. При желании можете оставить значение по умолчанию, этот параметр ни на что не влияет.</li>
Перейдите на вкладку «Безопасность».</li>
Определите режим аутентификации как «Пользователь».</li>Выберите из выпадающего списка «Шифровать пароли» интересующий вас вариант.</li>Выберите гостевую учетную запись.</li>Нажмите «ОК».</li></ol>
После этого настройка сервера будет окончена, можно переходить непосредственно к созданию папок Samba.
Шаг 5: Создание папок
Если ранее вы не создавали общедоступные папки, то окно программы будет пустым. Для создания новой папки, вам нужно выполнить следующее:
- Кликните по кнопке с изображением знака плюс.
- В открывшемся окне, во вкладке «Основной», нажмите «Обзор».
- В файловом менеджере укажите нужную папку для ее расшаривания.
- В зависимости от предпочтений, поставьте галочки рядом с «Запись разрешена» (пользователю будет позволено редактировать файлы в общедоступной папке) и «Виден» (на другом ПК добавляемая папка будет видна).
- Перейдите во вкладку «Доступ».
- На ней есть возможность определить пользователей, которым будет разрешено открывать расшаренную папку. Для этого поставьте отметку рядом с «Предоставить доступ только определенным пользователям». После этого нужно выбрать их из списка. Если вы собираетесь сделать общедоступную папку, то поставьте переключатель в положение «Предоставить доступ всем».
- Нажмите кнопку «ОК».
После этого в главном окне программы будет отображаться только что созданная папка.
При желании вы можете создать еще несколько папок, используя вышеприведенную инструкцию, или же изменить уже созданные, нажав по кнопке «Изменить свойства выбранного каталога».
Как только вы создадите все нужные папки, можете закрывать программу. На этом инструкция по настройке Samba в Ubuntu с помощью программы System Config Samba окончена.
Настройка Samba в Debian
Настройки Samba находятся в файле /etc/samba/smb.conf. Этот файл содержит общие настройки для Samba, а также сведения об общих ресурсах. Обычно в Debian предоставляются неплохие настройки по умолчанию, которые позволяют начать работать немедленно, что в общем не мешает взглянуть на них и внести изменения там, где это необходимо.
1. Базовые настройки
Первое что вам встретится в верхней части группы глобальных настроек — настройка workgroup. Эта опция определяет имя рабочей группы Windows, частью которой станет ваш сервер. Значение по умолчанию — WORKGROUP, так как такое же значение, по умолчанию в задано в Windows. Если вы изменяли настройки рабочей группы в Windows, измените их также и здесь.
Следующая опция позволит ограничить доступ к вашему серверу. Если вы хотите ограничить доступ к общему ресурсу по ip адресу или маске сети, уберите символ комментария в строке где находится параметр interfaces, и укажите ip адрес или диапазон IP адресов, и интерфейс к которому они могут подключаться.
Если такой метод вам не нравится, вы можете добавить параметр hosts allow, чтобы определить, клиентов, которые могут подключаться к общему ресурсу. Укажите IP-адрес или диапазоны адресов.
Остальные параметры из группы глобальных настроек имеют довольно обоснованные значения по умолчанию. Вам не потребуется изменять их для того чтобы запустить свои общие ресурсы. Но не стоит ограничиваться только рассмотренными нами опциями, вы можете исследовать и другие параметры, и настраивать их по своему усмотрению. Настройка Samba Debian 10 практически завершена, осталось создать общую папку и пользователя.
2. Создание общего ресурса
В конфигурационном файле, по умолчанию, уже присутствуют несколько настроек для общих ресурсов. Они дают вам возможность настроить совместное использование домашних папок пользователей системы и принтеров. А доступ к каталогу печати уже открыт. Измените значение параметра browseable на no.
Теперь попробуйте создать свой собственный общий ресурс. Существует масса опций, которые вы можете использовать для своего общего ресурса Samba, но в этом руководстве будут рассмотрены лишь наиболее используемые из них.
Во-первых, дайте имя своему общему ресурсу, и поместите это имя в скобки.
В следующей строке напишите краткий комментарий, описывающий общий ресурс.
Затем задайте путь, эквивалентный абсолютному пути к общей папке.
Выберите, будет ли папка отображаться в файловом менеджере или же ее нужно будет подключать вручную.
Хотите ли вы, чтобы пользователи имели права на запись в общий ресурс или могли подключить его только для чтения?
Смогут ли гости получить доступ к общему ресурсу? В терминах Samba гости — это анонимные пользователи, для которых не существует записи в настройках доступа к общему ресурсу. Если выразиться короче, хотите ли вы защитить общий ресурс паролем, или ограничить доступ к ресурсу только для отдельных пользователей?
Если гости не будут иметь доступ к общей папке, то у кого он будет?
Ну вот и все. Есть еще и другие опции и другие способы выполнить эти базовые шаги, но они дадут вам в итоге приблизительно тот же результат. Если вы точно знаете что вам нужно, этих опций вам будет достаточно. Если соединить все что мы написали выше — у нас получится что-то вроде этого:
Сохраняем и закрываем файл. Затем перезагружаем Samba.
3. Создание пользователя
Для подключения к общей папке, если только вы не используете гостевой доступ, вам потребуется настроить учетные записи пользователей Samba. Это очень быстро, и потребует всего одной команды.
После этого вам будет предложено ввести пароль для этого пользователя. Это пароль, которым будут защищены доступные ему общие ресурсы.
Настройка общих папок
Linux
Установка и настройка Samba-сервер для Ubuntu выполняется следующими этапами.
Обновляем информацию о репозиториях и устанавливаем обновления для существующих пакетов в системе:
Устанавливаем пакет Samba:
Создадим резервную копию файла конфигурации:
Создадим директории для файлов, например в каталоге /media:
Важно! По умолчанию, директория /media располагается в корне системы /, для нее редко создается свой раздел. По этой причине возможно переполнение корневого раздела
Во избежание этой неприятной ситуации, рекомендуем монтировать отдельный жесткий диск в /media/samba.
Создаем каталог для всех пользователей:
Изменим права доступа к каталогу:
Также следует воспользоваться командой chown для смены владельца и/или группы.
Создаем директорию для ограниченного круга лиц:
С помощью системных инструментов создадим группу пользователей:
Добавляем пользователей Samba:
Созданных пользователей добавляем в группу:
Изменим группу, которой принадлежит приватная директория:
С помощью инструментов Samba создадим пароль для добавленного пользователя:
С помощью текстового редактора, например, nano, редактируем конфигурационный файл samba:
Удаляем все строки из файла. Вставляем следующие:
Настройка Samba
Сохраняем используя сочетание Ctrl + X, затем нажимаем Y и Enter.
Объясним значения строк. конфигурационный файл состоит из трех секций:
global — данная секция отвечает за общие настройки Samba-сервера;
public и private — секции описания настроек директорий общего доступа.
В секции global присутствуют пять параметров:
- workgroup — рабочая группа. Для упрощения работы пользователей WORKGROUP указывается, как группа по умолчанию. Если в вашей сети имя рабочей группы изменено, то следует изменить это значение и для Samba;
- security — уровень безопасности сервера. Значение user означает авторизацию по паре логин/пароль;
- map to guest — параметр определяет способ обработки запросов. Значение bad user означает, что запросы с неправильным паролем будут отклонены, даже если такое имя пользователя существует;
- wins support — включить или выключить поддержку WINS;
- dns proxy — возможность проксирования запросов к DNS.
Настройки директорий выполняются в соответствующих секциях:
path — полный путь до директории на жестком диске;
guest ok — возможность доступа к каталогу без пароля (гостевой);
browsable — показывать ли каталог (“шару”) на сервере среди прочих. Если параметр установлен как “no”, то доступ будет возможен по полному пути, например ip-addresshidden_directory;
force user — пользователь от которого ведется работа с каталогом. Для повышения безопасности сервера, обычно используют nobody. Главное, не использовать пользователя root — это небезопасно.
writable — установка значения как “yes” позволяет пользователю выполнять действия над файлами внутри каталога — переименование, добавление, удаление, перемещение в подкаталог и копирование;
valid users — список пользователей у которых есть доступ к каталогу. Если пользователей несколько, их имена указываются через запятую. Если необходим доступ для пользователей принадлежащих группе, перед именем группы устанавливается символ ”at” @ (“собака”).
Важно! Имя директории общего доступа, отображаемое пользователям, равно имени секции в которой оно описано
Организация доступа к Windows с помощью клиента smbclient
В первую очередь, нам необходимо убедиться в том, может ли наш Linux взаимодействовать с Windows с помощью Samba. Самый простой способ, это воспользоваться FTP-подобным клиентом . C помощью которого, можно отправить запрос системе Windows и получить информацию о том, какие ресурсы Windows являются доступными.
samba:~# smbclient -L host -U% Domain= OS= Server= Sharename Type Comment --------- ---- ------- Error returning browse list: NT_STATUS_ACCESS_DENIED Domain= OS= Server= Server Comment --------- ------- HOST Workgroup Master --------- ------- WORKGROUP HOST samba:~# smbclient -L host -UАдминистратор%12345 Domain= OS= Server= Sharename Type Comment --------- ---- ------- IPC$ IPC Удаленный IPC print$ Disk Драйверы принтеров SharedDocs Disk PrinterHP3005 Printer HP3005 share Disk ADMIN$ Disk Удаленный Admin share_ware Disk C$ Disk Стандартный общий ресурс Domain= OS= Server= Server Comment --------- ------- Workgroup Master --------- -------
Из листинга видно, как мы с помощью smbclient и параметра -L запросили список доступных ресурсов на машине host от имени анонимного пользователя (параметр -U%). В ответ Windows нам сказал, что Error returning browse list: NT_STATUS_ACCESS_DENIED, то есть анонимный доступ запрещен. Далее, мы попробовали подключиться к машине от имени пользователя Администратор с паролем 12345, который зарегистрирован в системе. Мы получили ответ со списком расшаренных ресурсов. Это не может не радовать. Давайте попробуем подключиться к шаре share:
samba:~# cd smb/ samba:~/smb# smbclient //host/share -UАдминистратор%12345 Domain= OS= Server= smb: \> dir . D 0 Fri Mar 18 17:36:56 2011 .. D 0 Fri Mar 18 17:36:56 2011 ime D 0 Fri Mar 18 17:36:43 2011 Мои рисунки DR 0 Fri Mar 18 17:36:56 2011 Моя музыка DR 0 Fri Mar 18 17:36:56 2011 40915 blocks of size 262144. 24388 blocks available smb: \> cd ime smb: \ime\> dir . D 0 Fri Mar 18 17:36:43 2011 .. D 0 Fri Mar 18 17:36:43 2011 chsime D 0 Fri Mar 18 17:36:43 2011 CHTIME D 0 Fri Mar 18 17:36:43 2011 imejp D 0 Fri Mar 18 17:36:43 2011 imejp98 D 0 Fri Mar 18 17:36:43 2011 imjp8_1 D 0 Fri Mar 18 17:36:43 2011 imkr6_1 D 0 Fri Mar 18 17:36:43 2011 mscandui.dll A 220160 Tue Apr 15 16:00:00 2008 shared D 0 Fri Mar 18 17:36:43 2011 SOFTKBD.DLL A 130048 Tue Apr 15 16:00:00 2008 SPGRMR.dll A 62976 Tue Apr 15 16:00:00 2008 SPTIP.dll A 272384 Tue Apr 15 16:00:00 2008 40915 blocks of size 262144. 24388 blocks available smb: \ime\> get SPTIP.dll getting file \ime\SPTIP.dll of size 272384 as SPTIP.dll (11565,2 KiloBytes/sec) (average 11565,2 KiloBytes/sec) smb: \ime\> quit samba:~/smb# ls -l итого 269 drwxr-xr-x 2 root root 1024 Мар 18 19:00 . drwxr-xr-x 13 root root 1024 Мар 18 18:50 .. -rw-r--r-- 1 root root 272384 Мар 18 19:00 SPTIP.dll
Итак, в приведенном листинге нам удалось подключиться к шаре \\host\share от пользователя Администратор с паролем 12345. Мы получили содержимое каталога (причем русские символы прекрасно отображаются), перешли в подкаталог ime, получили его содержимое и получили на локальную машину файл SPTIP.dll, командой get (команда как и у FTP клиента). Вы, наверно, заметили, что в утилите smbclient путь к шаре указывается с прямым слешем, хотя в Windows принято задавать путь с обратным слешем. Утилита smbclient довольно гибка и используется как часть утилиты smbprint, для передачи потока данных, отправленных на принтер.
Сетевая корзина
При удалении файлов из общей папки, данные удаляются навсегда. Но мы можем настроить сетевую корзину — скрытый каталог, в который будут перемещаться удаляемые с самбы объекты.
Открываем конфигурационный файл:
vi /etc/samba/smb.conf
Создаем шару:
comment = Snap Directories
path = /data/recycle
public = yes
browseable = yes
writable = yes
vfs objects = recycle
recycle:repository = .recycle/%U
recycle:keeptree = Yes
recycle:touch = Yes
recycle:versions = Yes
recycle:maxsize = 0
recycle:exclude = *.tmp, ~$*
recycle:exclude_dir = /tmp
* где:
- vfs objects = recycle — использовать подсистему recycle.
- recycle:repository — где хранить удаленные объекты. В данном примере удаленные файлы попадут в скрытый каталог .recycle к котором создастся каталог с именем пользователя, удалившего файл или папку.
- recycle:keeptree — удалять объекты с сохранение дерева каталогов.
- recycle:touch — изменить ли дату изменения файла при его перемещении в корзину.
- recycle:versions — при удалении файлов с совпадающими именами, добавлять номер версии.
- recycle:maxsize — не помещать в корзину файлы, размер которых больше заданного параметра (в байтах). В данном примере, помещать файлы любого размера.
- recycle:exclude — исключить файлы.
- recycle:exclude_dir — исключить каталог.
Создаем каталог и задаем права:
mkdir /data/recycle
chmod 777 /data/recycle
Перезапускаем самбу:
systemctl restart smbd
Пробуем зайти в сетевой каталог Recycle и создать, а после удалить файл. Он должен оказаться к скрытой папке .recycle.
Для автоматической чистки сетевой корзины можно создать скрипт:
mkdir /scripts
vi /scripts/cleanrecycle.sh
#!/bin/bash
recyclePath=»/data/recycle/.recycle»
maxStoreDays=»30″
/usr/bin/find $recyclePath -name «*» -ctime +$maxStoreDays -exec rm {} \;
* в данном скрипте мы ищем все файлы в каталоге /data/recycle/.recycle, которые старше 30 дней и удаляем их.
Разрешаем запуск скрипта:
chmod +x /scripts/cleanrecycle.sh
Создаем задание в планировщике:
crontab -e
0 5 * * * /scripts/cleanrecycle.sh
* в данном примере мы будем запускать скрипт по очистке сетевой корзины каждый день в 05:00.
Установка глобальных опций Samba
Параметры конфигурации Samba хранятся в файле /etc/samba/smb.conf. В нем есть два раздела, global и shares. В разделе global прописаны параметры самого сервера (имя сервера, его тип, интерфейсы и другие сетевые настройки), а в разделе shares — параметры ресурсов. Вместо редактирования файла создадим новый. Предварительно сохранив оригинал:
$sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.orig $sudo vi /etc/samba/smb.conf
Внесем в наш новый файл /etc/samba/smb.conf следующий код
server string = samba_server server role = standalone server interfaces = lo ваш_сетевой_интерфейс bind interfaces only = yes disable netbios = yes smb ports = 445 log file = /var/log/samba/smb.log max log size = 10000
Рассмотрим значение этих параметров.
server string: информация, передаваемая во время подключения. Можно использовать любое имя для идентификации сервера. Далее будут рассмотрены названия для ресурсов Samba.server role: тип создаваемого Samba-сервера. В данном примере используется выделенный сервер (standalone). Другие типы — член домена и контроллер домена.interfaces: сетевые интерфейсы, к которым привязан сервер. Здесь указан “lo”, loopback-интерфейс. Кроме него нужно указать внешний интерфейс, обычно это eth0.bind onterface only: гарантирует, что сервер Samba будет привязан только к тем интерфейсам, которые указаны в строке interfaces, и будет игнорировать пакеты с других интерфейсов.disable netbios: отключает на сервере все функции NetBios, чтобы немного облегчить процесс разрешения имени сервера и разгрузить трафик.smb ports: номер порта, на котором будет работать сервер. По умолчанию Samba использует порт 445.log file: имя и месторасположение файла лога Samba.max log size: максимальный размер файла лога. Рекомендуется указывать его настолько большим, насколько позволяют ресурсы стстемы. Если размер будет превышен, будет создан новый файл, а предыдущий файл будет перемещен в дубликат с расширением .old. При повторном превышении первый файл с расширением .old будет удалён. Данный параметр помогает предотвратить заполнение диска.
Если нужны более подробные логи, можно воспользоваться командой:
log level = 3 passdb:5 auth:5
Уровень лога 3 означает, что сохраняется более детальная информация, чем при стандартном ведении лога. Стандартный уровень — 1, максимальный — 5. Здесь он установлен для параметров passdb и auth, чтобы получать более подробную информацию об аутентификации пользователей. После определения параметров ведения лога сохраните и закройте файл. При необходимости файл smb.conf нужно протестировать на синтаксические ошибки при помощи утилиты Samba testparm:
$testparm
Будет выведен следующий результат:
После нажатия на клавишу Enter будут выведены глобальные параметры:
Если в результате выводится “Load services files OK”, значит, в файле нет ошибок и сервер можно запускать.
Теперь нужно настроить конфигурацию ресурсов. Ресурс состоит из двух элементов, пользователя и директории, которые необходимо создать для обеспечения возможности подключения и тестирования.
Создание пользователей Samba
В данном разделе мы создадим профили пользователей, которые смогут осуществлять доступ к серверу. Им потребуется доступ как пользователям Samba и как пользователям системы, чтобы при входе в систему они проходили аутентификацию на сервере Samba и могли осуществлять чтение и запись в файловой системе.
Помимо обычных пользователей нужно создать администратора, у которого будет возможность доступа к персональным ресурсам и их администрирования. Также администратор будет владеть общими ресурсами, доступ к которым разрешен всем.
Для каждого пользователя нужно создать домашнюю директорию. Вместо использования стандартной директории /home/user лучше создать пероснальную директорию в /samba/ для разделения данных и более удобного резервного копирования. Сначала создадим группу sambashare, директорию для хранения данных samba и назначим ее владельцем группу sambashare
$ groupadd sambashare $sudo mkdir /samba/ $sudo chown :sambashare /samba/
Затем нужно создать директорию пользователя (в примере мы рассмотрим создание пользователя ivan, для нескольких пользователей создание будет аналогичным): Добавим системного пользователя:
$sudo adduser --home /samba/ivan --no-create-home --shell /usr/sbin/nologin --ingroup sambashare ivan
В команде используются параметры:
—home: месторасположение домашней директории пользователя.
—no-create-home: указывает команде adduser не создавать домашнюю директорию, чтобы не заполнять ее ненужными файлами конфигурации.
—shell: определяет, какая оболочка будет использоваться при входе через SSH. В данном примере SSH не используется, поэтому значение /usr/sbin/nologin отключает вход через SSH.
—ingroup sambashare: внесение пользователя в группу sambashare, чтобы обеспечить ему возможность чтения и записи для своего ресурса и общих ресурсов.
После запуска команды потребуется создать пароль.
Теперь нужно установить владельца и права доступа к директории:
$sudo chown ivan:sambashare /samba/ivan/ $sudo chmod 2770 /samba/ivan/
Права доступа 2770 означают, что новые файлы или директории, созданные в /samba/david/, будут наследовать группу владельцев от родительской директории, а не от группы пользователей, которая их создала. Например, если администратор создаст новую директорию в ресурсе пользователя ivan, то ivan будет иметь к ней доступ на чтение и запись.
Далее командой smbpasswd необходимо добавить пользователя на сервере Samba (флаг -a) и активировать его (флаг -e):
$sudo smbpasswd -a ivan
Вам потребуется ввести пароль для доступа к ресурсу samba, он может отличаться от системного пароля.
Активируем пользователя
$sudo smbpasswd -e ivan
Другие пользователи создаются аналогичным образом. Для создания пользователя admin нужно выполнить следующие команды, его домашней директорией будет everyone:
$sudo mkdir /samba/everyone $sudo adduser --home /samba/everyone --no-create-home --shell /usr/sbin/nologin --ingroup sambashare admin $sudo chown admin:sambashare /samba/everyone/ $sudo chmod 2770 /samba/everyone/ $sudo smbpasswd -a admin $sudo smbpasswd -e admin
Для удобства можно также создать группу администраторов, это позволит не прописывать права доступа ко всем ресурсам при изменении администратора, а один раз прописать их для группы и в дальнейшем добавлять и удалять администраторов одной командой:
$sudo groupadd admins $sudo usermod -G admins admin
Настройка системы завершена, теперь нужно настроить ресурсы.
ШАГ 6: Утилиты и диагностика Samba
# testparm Load smb config files from etcsambasmb.conf Loaded services file OK. Server role: ROLE_STANDALONE
-
smbget позволяет скачивать с windows, linux (д.уст. samba) файлы через Что такое протокол SMB протокол. Скачать рекурсивно все директории и файлы:
smbget -Rr smb://ip_addr/share
-
smbclient — утилита для подключения к общедоступным папкам.
-
Отобразить общедоступные ресурсы на удаленном хосте:
smbclient -L ip_addrhostname
-
Посмотреть «шары» локально на стороне сервер
smbclient -L 127.0.0.1
-
Просмотреть папку vip под пользователем tatyana
$ smbclient \\\\10.26.95.220\\vip -U tatyana
-
Отобразить общедоступные ресурсы на удаленном хосте:
-
nbtscan
nbtscan ip_addr разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию, возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba. nmblookup -A ip_addr