Содержание
Пожалуй нет ни одного офиса, в котором не применялись бы общие ресурсы локальной сети, будь то папки или принтеры. Крупные и средние компании используют возможности Active Directory, компании поменьше — используют штатные средства ОС Windows или Samba, но на серверах под управлением ОС Linux. Рассмотрим все случаи.
Что такое Samba?
Samba — серверное приложение, реализующее доступ клиентских терминалов к папкам, принтерам и дискам про протоколу SMB/CIFS.
Настройка общих папок
Linux
Установка и настройка Samba-сервер для Ubuntu выполняется следующими этапами.
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. Создадим директории для файлов, например в каталоге /media:
mkdir /media/samba
Важно! По умолчанию, директория /media располагается в корне системы /, для нее редко создается свой раздел. По этой причине возможно переполнение корневого раздела. Во избежание этой неприятной ситуации, рекомендуем монтировать отдельный жесткий диск в /media/samba.
5. Создаем каталог для всех пользователей:
mkdir /media/samba/public
6. Изменим права доступа к каталогу:
chmod -R 0755 /media/samba/public
Также следует воспользоваться командой chown для смены владельца и/или группы.
7. Создаем директорию для ограниченного круга лиц:
mkdir /media/samba/private
8. С помощью системных инструментов создадим группу пользователей:
groupadd smbgrp
9. Добавляем пользователей Samba:
useradd user1
10. Созданных пользователей добавляем в группу:
usermod -aG smbgrp user1
11. Изменим группу, которой принадлежит приватная директория:
chgrp smbgrp /media/samba/private
12. С помощью инструментов Samba создадим пароль для добавленного пользователя:
smbpasswd -a user1
13. С помощью текстового редактора, например, nano, редактируем конфигурационный файл samba:
nano /etc/samba/smb.conf
Удаляем все строки из файла. Вставляем следующие:
[global]
workgroup = WORKGROUP
security = user
map to guest = bad user
wins support = no
dns proxy = no
[public]
path = /media/samba/public
guest ok = yes
force user = nobody
browsable = yes
writable = yes
[private]
path = /media/samba/private
valid users = @smbgrp
guest ok = no
browsable = yes
writable = yes
Сохраняем используя сочетание 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” @ (“собака”).
Важно! Имя директории общего доступа, отображаемое пользователям, равно имени секции в которой оно описано.
Проверяем настройки с помощью команды:
testparm -s
Перезапускаем сервер:
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
Для сохранения правил и применения их после перезагрузки сервера следует воспользоваться пакетом iptables-persistent. Установим его:
apt-get install iptables-persistent
Входе установки пакета, программа предложит запомнить существующие правила iptables. Подтверждаем это действие.
Для проверки существующих правил используем:
iptables -L
Windows
По аналогии с Linux, настроим общий доступ к папкам public и private, но в ОС Windows.
Для создания общего доступа к каталогу без парольной защиты, необходимо настроить ограничения защиты в панели управления. Для этого открываем:
Панель управления → Сеть → Центр управления сетями и общим доступом → Расширенные настройки общего доступа.
В обновленном окне открываем раздел “Все сети” и ищем секцию “Общий доступ с парольной защитой”. Устанавливаем параметр в положение “Отключить общий доступ с парольной защитой”. Для сохранения значений параметра кликаем по кнопке “Сохранить изменения”.
Теперь откроем доступ к самому каталогу. Кликаем по папке правой кнопкой мыши, в контекстном меню выбираем “Свойства”. Открываем вкладку “Доступ” и кликаем по “Расширенная настройка”.
В открывшемся окне расширенных настроек общего доступа отмечаем галочкой “Открыть общий доступ к этой папке”, в поле “Имя общего ресурса” указываем название, которое будет отображено пользователям. Кликаем по кнопке “Разрешения”.
В открывшемся окне, в группах пользователей выбираем “Все”, а в разрешениях для группы, устанавливаем галку “Полный доступ”. Нажимаем “OK” в этом и остальных окнах.
В окне свойств папки public кликаем по кнопке “Общий доступ”.
В открывшемся окне добавляем пользователя “Все”, а также делегируем права на “Чтение и запись”. Кликаем по кнопке “Поделиться”.
В обновленном окне нажимаем “Готово”.
Настроим папку общего доступа, но для ограниченного круга лиц.
Кликаем правой кнопкой мыши по папке, выбираем “Свойства”.
В открывшемся окне переходим на вкладку “Доступ”. Кликаем по кнопке “Расширенные настройки”.
В новом открывшемся окне, устанавливаем галку “Открыть общий доступ к этой папке”. Затем кликаем по кнопке “Разрешения”.
В открывшемся окне, в поле “Группы или пользователи” выбираем “Все” и нажимаем кнопку “Удалить”.
Таким образом установлен запрет на анонимный доступ к папке.
Окно обновится. Кликаем по кнопке “Добавить”.
В открывшемся окне кликаем по кнопке “Дополнительно”.
Окно изменится в размере. Кликаем по кнопке “Поиск”. Двойным кликом выбираем пользователя, которому необходим доступ к этому каталогу, например, buhgalter.
В открывшемся окне, при желании, можем добавить еще одного пользователя через “Дополнительно” — “Поиск”. Аналогичным образом можно добавить группу пользователей, например, “Администраторы”, при этом следует понимать, что доступ будет предоставлен всем пользователям из этой группы.
Установим права доступа для пользователя “buhgalter”. Если требуется полный доступ к директории, устанавливаем галку в соответствующем месте.
Нажимая кнопки “OK” возвращаемся к окну свойств папки, в котором кликаем по кнопке “Общий доступ”.
В данном окне необходимо найти и добавить пользователя “бухгалтер”.
В окне выбора пользователей и групп кликаем по кнопке “Дополнительно”.
Окно снова изменит свои размеры. Кликаем по кнопке “Поиск”. В найденном ниже списке пользователей и групп выбираем искомого пользователя. Выбираем его двойным кликом.
В оставшемся окне проверяем правильно ли указан пользователи и нажимаем кнопку “OK”.
Устанавливаем требуемый уровень разрешений для пользователя и кликаем по кнопке “Поделиться”.
Кликаем по кнопке “Готово”.
Подключение к общим папкам
Из Linux
Для подключения к общим папкам из среды Linux требуется установка отдельного программного обеспечения — smbclient. Установим:
sudo apt-get install smbclient
Для подключения к серверу используется следующий формат комангды:
smbclient -U <Имя_пользователя> \<Имя_каталога_на_сервере>
Пример:
smbclient -U buhgalter \10.0.0.1public
Для того, Чтобы не вводить эту команду каждый раз, можно настроить монтирование общей директории как сетевого диска. Для этого установим пакет cifs-utils:
sudo apt-get install cifs-utils
Монтирование выполняется по следующему шаблону:
mount -t cifs -o username=<Имя_пользователя>,password= ///<Общий каталог> <Точка монтирования>
Пример:
mount -t cifs -o username=Everyone,password= //10.0.0.1/public /media
Важно! Если требуется подключение к общим папкам расположенным на Windows-сервере, то в для не защищенных паролем директорий, в качестве имени пользователя, следует использовать “Everyone”. Для подключения к Linux-серверу рекомендуем использовать в качестве имени пользователя “nobody”. В случае доступа к защищенным директориям следует использовать те учетные данные, которые вы указали.
Из Windows
Подключение к удаленным папкам из среды Windows выполняется немного иначе. Для этого в проводнике или окне запуска программ (Windows + R), следует использовать следующий шаблон:
<имя_папки>
Указав просто IP-адрес сервера вы получите список общих папок.
При подключении к Windows-сервер, система безопасности может потребовать ввод учетных данных. Для подключения к общей открытой папке используем Everyone, а поле пароля оставляем пустым.
При подключении к Linux-серверу из ОС Windows, следует использовать указанный ранее шаблон:
<имя_папки>
или просто адрес сервера:
Облачные VPS/VDS
Создайте сервер всего за 1 минуту!
от8 руб/месяц
Файловый сервер можно без преувеличения назвать средством первой необходимости, даже в сетях без выделенного сервера вы всегда обнаружите папки с общим доступом, но по мере роста объемов данных появляется потребность в отдельном решении. Вариантов его организации множество, одним из которых является служба Samba на Linux-сервере, это простое, недорогое, но в тоже время мощное решение по организации общего доступа к файлам и папкам в Windows сетях. В данной статье мы рассмотрим настройку простого сервера на основе Samba 4 работающего в ОС Debian / Ubuntu.
Несмотря на то, что в данной статье в качестве ОС мы использовали Debain 9 все сказанное будет справедливо для любой ОС на базе Debian или Ubuntu, а с поправкой на работу пакетного менеждера — для любого Linux-дистрибутива. Также мы предполагаем, что читатель имеет базовые навыки работы с Linux-системами на базе Debian.
Подготовка системы
Прежде чем приступать к работе продумайте схему хранения данных и доступа к ним. Существую разные типы данных, которые мы будем характеризовать по интенсивности доступа к ним, скажем «холодные данные» отличаются тем, что обращения к ним происходят крайне редко (а к некоторым вообще никогда), но при этом они могут занимать значительные объемы. Это прежде всего резервные копии, инсталляционные пакеты, образа дисков и т.д. и т.п.
Противоположность им «горячие данные» — это данные которые интенсивно используются и изменяются, для файлового сервера примером таких данных может служить файловая информационная база 1С:Предприятия. Между ними находятся обычные данные, характер доступа к которым не имеет каких-либо особенностей.
Исходя из типа данных следует выбирать диски для хранения, для «горячих данных» это должны быть быстрые диски или SSD, а для «холодных» подойдут экономичные модели с упором на большой объем. Также не забывайте про RAID, для защиты данных от аппаратного выхода дисков из строя.
Также продумайте структуру директорий и прав доступа к ним. Разумно будет исходить из следующих соображений: разделяйте диски с данными и системой, чтобы при необходимости можно было заменить их без лишних затруднений или перенести на другой сервер. Храните разные типы данных на разных дисках или разделах, скажем, если на разделе для резервных копий закончится свободное место, то это никак не повлияет на работу баз 1С.
В нашем примере мы будем использовать виртуальную машину с двумя жесткими дисками, один для системы, второй для данных, точку монтирования диска для данных мы указали как /samba, вы можете использовать другое имя и расположение.
Также обратите внимание на имя компьютера, Samba 4 будет использовать его в качестве NetBIOS имени.
После установки ОС следует изменить настройку лимита на количество одновременно открытых файлов, в Linux это 1024, а в Windows 16384. Для этого откройте файл /etc/security/limits.conf и добавьте в конце две строки:
* - nofile 16384root - 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 allpath = /samba/publicread only = noguest ok = yes
В квадратных скобках задаем имя ресурса, все что ниже скобок — секция этого ресурса. В ней мы указали следующие опции:
- comment — описание ресурса, необязательный параметр;
- path — путь к директории;
- read only — режим только чтения, указываем no;
- guest ok — разрешен ли гостевой доступ, указываем yes;
Теперь создадим саму директорию:
mkdir /samba/public
и установим на нее необходимые права, для гостевого ресурса это 777:
chmod 777 /samba/public
Перезапускаем Samba и пробуем получить доступ с любого Windows-клиента.
Если все сделано правильно, то сервер появится в сетевом окружении, и вы без проблем получите доступ к созданной нами общей папке.
Настройка общего ресурса с парольным доступом
Гостевой доступ это просто и удобно, но не всегда приемлемо. Существуют ситуации, когда доступ к общему ресурсу должны иметь только определенные пользователи. В нашем примере создадим два таких ресурса: для бухгалтерии и для IT-отдела.
Снова откроем конфигурационный файл и добавим в него две секции:
[buch]path = /samba/buchread only = noguest ok = no
[adm]path = /samba/admread only = noguest ok = no
Они предельно просты и отличаются запретом гостевого доступа — guest ok = no. Для того, чтобы разделить доступ к ресурсам будем использовать группы пользователей, создадим две новые группы для наших подразделений:
groupadd smbbuchgroupadd smbadm
Теперь создадим каталоги:
mkdir /samba/buchmkdir /samba/adm
и изменим группу владельца:
chgrp smbbuch /samba/buchchgrp smbadm /samba/adm
Затем установим права:
chmod 2770 /samba/buchchmod 2770 /samba/adm
Значение 2770 обозначает что мы предоставляем полные права владельцу и группе, для остальных доступ запрещен. А первая двойка устанавливает SGID для каталога, что обеспечивает присвоение группы каталога каждому создаваемому в нем файлу.
В некоторых случаях определенный интерес представляет выставление дял каталога sticky bit, который означает, что удалить или переименовать файл может только его владелец, но работать с ним, в том числе изменять, может любой пользователь, имеющий права записи в каталог. Для этого вместо набора прав 2770 используйте права 3770.
На этом настройки закончены, не забываем перезапустить Samba. Но в наших группах пока нет пользователей, давайте добавим их туда.
Начнем с уже существующих пользователей, в нашем случае это пользователь andrey, который является главным администратором и должен иметь доступ к обоим ресурсам. Поэтому добавим его в обе группы:
usermod -aG smbbuch andreyusermod -aG smbadm andrey
Затем добавим его в базу Samba:
smbpasswd -a andrey
При этом потребуется установить пароль для доступа к Samba-ресурсам, он должен совпадать с основным паролем пользователя. После чего включим эту учетную запись:
smbpasswd -e andrey
Проверяем, после ввода пароля мы должны получить доступ к созданным нам ресурсам. Также обратите внимание, после аутентификации в списке общих ресурсов появилась папка с именем пользователя, подключенная только на чтение.
С настройками по умолчанию Samba предоставляет каждому существующему пользователю доступ только на чтение к его домашнему каталогу. На наш взгляд это довольно удобно и безопасно. Если вас не устраивает такое поведение — удалите из конфигурационного файла секцию [homes].
Теперь о других пользователях. Скажем у нас есть бухгалтер Иванова и админ Петров, каждый из которых должен иметь доступ к своему ресурсу. В тоже время иметь доступ к самому Samba-серверу им необязательно, поэтому создадим новых пользователей следующей командой:
useradd -M -s /sbin/nologin ivanovauseradd -M -s /sbin/nologin petrov
Ключ -M заводит пользователя без создания домашнего каталога, а -s /sbin/nologin исключает возможность входа такого пользователя в систему.
Поместим каждого в свою группу:
usermod -aG smbbuch ivanovausermod -aG smbadm petrov
Затем добавим их в базу Samba, при этом потребуется установить им пароли:
smbpasswd -a ivanovasmbpasswd -a petrov
И включим эти учетные записи
smbpasswd -e ivanovasmbpasswd -e petrov
Если все сделано правильно, то пользователь будет иметь доступ к своим ресурсам и не иметь к чужим.
Также обратите внимание, что несмотря на то, что общий ресурс с именем пользователя создан, доступ он к нему получить не сможет, так как физически его домашняя директория не существует.
Настройка корзины для общего ресурса
Полезность корзины на файловом сервере, пожалуй не будет отрицать никто. Человеку свойственно ошибаться и будет очень обидно, если ценой ошибки окажется несколько часов работы, но, к счастью Samba позволяет помещать удаленные файлы в корзину.
Для активации корзины добавьте в секцию к общему ресурсу следующие строки:
vfs objects = recyclerecycle:repository = .recyclerecycle:versions = yesrecycle:keeptree = yes
Первая опция добавит в общий ресурс новый объект — корзину, вторая укажет ее расположение — скрытая папка в корне. Две следующих включают сохранение структуры папок при удалении и сохранение нескольких версий файла с одним и тем же именем. Это нужно в тех случаях, когда разные пользователи удалят разные файлы с одним и тем же именем.
Перезапустим Samba и попробуем что-нибудь удалить.
Несмотря на грозное предупреждение Проводника удаляемые файлы перемещаются в корзину, откуда мы их можем восстановить.
Как видим, работать с Samba не просто, а очень просто, при том, что мы оставили за кадром многие возможности тонкой настройки, многие из которых требуют отдельных статей. Надеемся, что данный материал окажется вам полезным и поможет быстро и без проблем развернуть файловый сервер на Linux.
Читайте также:Как установить UbuntuКак настроить интернет-соединение в Ubuntu
Терминал
С помощью «Терминала» в Ubuntu можно сделать все что угодно, соответственно, настроить Samba тоже получится. Для простоты восприятия весь процесс будет разбит на этапы. Ниже будут представлены три варианта настройки папок: с общим доступом (открывать папку сможет любой пользователь без запроса пароля), с доступом только для чтения и с аутентификацией.
Шаг 1: Подготовка Windows
Перед тем как произвести настройку Samba в Ubuntu, надо подготовить операционную систему Windows. Для обеспечения корректной работы необходимо, чтобы все участвующие устройства состояли в одной рабочей группе, которая указана в самой Samba. По умолчанию во всех операционных системах рабочая группа носит название «WORKGROUP». Для определения конкретной группы, используемой в ОС Windows, нужно воспользоваться «Командной строкой».
- Нажмите сочетание клавиш Win+R и во всплывшем окне «Выполнить» введите команду
cmd
.
В открывшейся «Командной строке» выполните следующую команду: net config workstation
</li>
</ol>
Имя интересующей вас группы располагается в строке «Домен рабочей станции». Конкретное местоположение вы можете видеть на изображении выше.
Далее, если на компьютере с Ubuntu статический IP, его необходимо прописать в файл «hosts» на Windows. Проще всего это сделать, используя «Командную строку» с правами администратора:
- Проведите поиск по системе с запросом «Командная строка».
В результатах нажмите по «Командной строке» правой кнопкой мыши (ПКМ) и выберите пункт «Запуск от имени администратора».</li>
В открывшемся окне выполните следующее: notepad C:WindowsSystem32driversetchosts
</li>В файле, открывшемся после выполнения команды, пропишите в отдельной строке ваш IP-адрес.</li></ol>
Читайте также: Часто используемые команды «Командной строки» в Windows 7
После этого подготовка Windows может считаться оконченной. Все последующие действия выполняются на компьютере с операционной системой Ubuntu.
Выше был приведен всего один пример открытия «Командной строки» в Windows 7, если по какой-то причине вы не смогли открыть ее или у вас другая версия операционной системы, рекомендуем ознакомиться с подробной инструкцией на нашем сайте.
Подробнее:Открытие «Командной строки» в Windows 7Открытие «Командной строки» в Windows 8Открытие «Командной строки» в Windows 10
Шаг 2: Настройка сервера Samba
Настройка Samba — довольно трудоемкий процесс, поэтому внимательно выполняйте каждый пункт инструкции, чтобы в итоге все работало корректно.
- Установите все необходимые пакеты программного обеспечения, которые нужны для корректной работы Samba. Для этого в «Терминале» выполните команду:
sudo apt-get install -y samba python-glade2
- Теперь в системе есть все необходимые компоненты для настройки программы. Первым делом рекомендуется сделать резервное копирование конфигурационного файла. Сделать это можно с помощью этой команды:
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Теперь, в случае возникновения каких-то трудностей, вы можете вернуть изначальный вид конфигурационного файла «smb.conf», выполнив:
sudo mv /etc/samba/smb.conf.bak /etc/samba/smb.conf
- Далее создаем новый файл конфига:
sudo gedit /etc/samba/smb.conf
Примечание: для создания и взаимодействия с файлами в статье используется текстовый редактор Gedit, вы же можете использовать любой другой, прописав в соответствующей части команды его название.
Читайте также: Популярные текстовые редакторы для Linux
После вышеуказанного действия откроется пустой текстовый документ, в него необходимо скопировать следующие строки, тем самым задав глобальные настройки для сервера Sumba: [global] workgroup = WORKGROUPE netbios name = gate server string = %h server (Samba, Ubuntu) dns proxy = yes log file = /var/log/samba/log.%m max log size = 1000 map to guest = bad user usershare allow guests = yes
</li>
Читайте также: Как создать или удалить файлы в Linux
Сохраните изменения в файле, нажав по соответствующей кнопке.</li>
</ol>
После этого первостепенная настройка Samba закончена. Если вы хотите разобраться во всех заданных параметрах, то сделать это можно на этом сайте. Чтобы найти интересующий параметр, разверните в левой части список «smb.conf» и отыщите его там, выбрав первую букву имени.
Помимо файла «smb.conf», изменения нужно внести также и в «limits.conf». Для этого:
- Откройте нужный файл в текстовом редакторе:
sudo gedit /etc/security/limits.conf
- Перед последней строкой в файле вставьте следующий текст:
* - nofile 16384 root - nofile 16384
- Сохраните файл.
По итогу он должен иметь следующий вид:
Это необходимо для избежания ошибки, которая возникает при одновременном подключении нескольких пользователей к локальной сети.
Теперь, чтобы убедиться в корректности введенных параметров, нужно выполнить команду:
sudo testparm /etc/samba/smb.conf
Если в результате вы увидите текст, что приведен на картинке ниже, значит, все вписанные вами данные верны.
Остается перезапустить сервер Samba следующей командой:
sudo /etc/init.d/samba restart
Разобравшись со всеми переменными файла «smb.conf» и внеся изменения в «limits.conf», можно переходить непосредственно к созданию папок
Читайте также: Часто используемые команды в «Терминале» Linux
Шаг 3: Создание папки с общим доступом
Как говорилось выше, по ходу статьи мы создадим три папки с разными правами доступа. Сейчас будет продемонстрировано то, как создать общую папку, чтобы ее мог использовать каждый пользователь без аутентификации.
- Для начала создайте саму папку. Сделать это можно в любой директории, в примере же папка будет находиться по пути «/home/sambafolder/», а называться — «share». Вот какую команду нужно выполнить для этого:
sudo mkdir -p /home/sambafolder/share
- Теперь измените права доступа папки, чтобы каждый пользователь смог ее открыть и взаимодействовать со вложенными файлами. Делается это следующей командой:
sudo chmod 777 -R /home/sambafolder/share
Обратите внимание: в команде необходимо указать точный путь к созданной ранее папке.
- Осталось описать созданную папку в конфигурационном файле Samba. Сначала откройте его:
sudo gedit /etc/samba/smb.conf
Теперь в текстовом редакторе, отступив две строки внизу текста, вставьте следующее:
[Share] comment = Full Share path = /home/sambafolder/share guest ok = yes browsable = yes writable = yes read only = no force user = user force group = users
- Сохраните изменения и закройте редактор.
Теперь содержимое конфигурационного файла должно выглядеть так:
Чтобы все изменения вступили в силу, нужно перезапустить Samba. Делается это уже известной командой:
sudo service smbd restart
После этого в Windows должна появится созданная общая папка. Чтобы в этом убедиться, выполните в «Командной строке» следующее:
\gateshare
Также открыть ее можно и через Проводник, перейдя в директорию «Сеть», что размещена на боковой панели окна.
Бывает такое, что папки все равно не видно. Скорее всего, причина этому – ошибка при настройке. Поэтому еще раз следует пройтись по всем вышеперечисленным этапам.
Шаг 4: Создание папки с доступом «Только для чтения»
Если вы хотите, чтобы в локальной сети пользователи могли просматривать файлы, но не редактировать их, нужно создавать папку с доступом «Только для чтения». Делается это по аналогии с общей папкой, только в конфигурационном файле задаются другие параметры. Но чтобы не оставалось лишних вопросов, разберем все поэтапно:
Читайте также: Как узнать размер папки в Linux
- Создайте папку. В примере она будет находиться в той же директории что и «Share», только название будет иметь «Read». Поэтому в «Терминале» вводим:
sudo mkdir -p /home/sambafolder/read
- Теперь наделите ее нужными правами, выполнив:
sudo chmod 777 -R /home/sambafolder/read
- Откройте конфигурационный файл Samba:
sudo gedit /etc/samba/smb.conf
- В конце документа вставьте следующий текст:
[Read] comment = Only Read path = /home/sambafolder/read guest ok = yes browsable = yes writable = no read only = yes force user = user force group = users
- Сохраните изменения и закройте редактор.
По итогу в конфигурационном файле должно быть три блока текста:
Теперь перезагрузите сервер Samba, чтобы все внесенные изменения вступили в силу:
sudo service smbd restart
После этого папка с правами «Только для чтения» будет создана, и все пользователи смогут в нее войти, но не смогут каким-либо образом изменять содержащиеся в ней файлы.
Шаг 5: Создание папки с закрытым доступом
Если вы хотите, чтобы сетевую папку пользователи могли открывать, проходя аутентификацию, то действия по ее созданию немного отличаются от вышеприведенных. Сделайте следующее:
- Создайте папку, например, «Pasw»:
sudo mkdir -p /home/sambafolder/pasw
- Измените ее права:
sudo chmod 777 -R /home/sambafolder/pasw
- Теперь создайте пользователя в группе «samba», который будет наделен всеми правами доступа к сетевой папке. Для это сначала создайте группу «smbuser»:
sudo groupadd smbuser
- Добавьте в только что созданную группу пользователя. Его имя можете придумать самостоятельно, в примере будет «teacher»:
sudo useradd -g smbuser teacher
- Задайте пароль, который необходимо будет вводить для открытия папки:
sudo smbpasswd -a teacher
Примечание: после выполнения команды вас попросят ввести пароль, а затем повторить его, обратите внимание, что при вводе символы не отображаются.
Осталось лишь ввести все нужные параметры папки в конфигурационный файл Samba. Для этого сначала откройте его:
sudo gedit /etc/samba/smb.conf
А затем скопируйте этот текст:
[Pasw] comment = Only password path = /home/sambafolder/pasw valid users = teacher read only = no
Важно: если выполняя четвертый пункт этой инструкции, вы создали пользователя с другим именем, то его необходимо ввести в строку «valid users» после символа «=» и пробела.
</li>Сохраните изменения и закройте текстовый редактор.</li></ol>
Текст в конфигурационном файле теперь должен выглядеть так:
Чтобы перестраховаться, проверьте файл, используя команду:
sudo testparm /etc/samba/smb.conf
По итогу вы должны увидеть примерно такое:
Если все в порядке, то перезагрузите сервер:
sudo /etc/init.d/samba restart
System Config Samba
Графический интерфейс (GUI) способен во многом облегчить процесс настройки Samba в Ubuntu. Как минимум, пользователю, который только перешел на Linux, этот способ покажется более понятным.
Шаг 1: Установка
Изначально нужно установить специальную программу в систему, которая обладает интерфейсом и которая необходима для осуществления настройки. Сделать это можно с помощью «Терминала», выполнив команду:
sudo apt install system-config-samba
Если до этого вы не устанавливали все компоненты Samba себе на компьютер, вам нужно будет вместе с ней загрузить и установить еще некоторые пакеты:
sudo apt-get install -y samba samba-common python-glade2 system-config-samba
После того как все необходимое было установлено, можно переходить непосредственно к настройке.
Шаг 2: Запуск
Запустить System Config Samba можно двумя способами: с помощью «Терминала» и через меню Bash.
Способ 1: Терминал
Если вы решили использовать «Терминал», то вам необходимо сделать следующее:
- Нажмите сочетание клавиш Ctrl+Alt+T.
- Введите следующую команду:
sudo system-config-samba
- Нажмите Enter.
Далее вам потребуется ввести системный пароль, после чего откроется окно программы.
Примечание: во время осуществления настройки Samba с помощью System Config Samba не закрывайте окно «Терминала», так как в этом случае программа закроется, а все внесенные изменения не будут сохранены.
Способ 2: Меню Bash
Второй способ многим покажется проще, так как все операции выполняются в графическом интерфейсе.
- Нажмите на кнопку меню Bash, которая находится в верхнем левом углу рабочего стола.
Введите в открывшемся окне поисковой запрос «Samba».</li>
Нажмите по одноименной программе в разделе «Приложения».</li>
</ol>
После этого система запросит у вас пароль пользователя. Введите его и программа откроется.
Шаг 3: Добавление пользователей
Перед тем как приступать непосредственно к настройке папок Samba нужно добавить пользователей. Делается это через меню настроек программы.
- Нажмите по пункту «Настройка» на верхней панели.
В меню выберите пункт «Пользователи Samba».</li>
В появившемся окне нажмите «Добавить пользователя».</li>
В выпадающем списке «Имя пользователя Unix» выберите пользователя, которому будет разрешено входить в папку.</li>
Вручную введите имя пользователя Windows.</li>
Введите пароль, а затем повторите его ввод в соответствующем поле.</li>
Нажмите кнопку «ОК».</li></ol>
Таким образом вы можете добавить одного или нескольких пользователей Samba, а в будущем определить их права.
Читайте также:Как добавить пользователей в группу в LinuxКак просмотреть список пользователей в Linux
Шаг 4: Настройка сервера
Теперь нужно приступить к настройке сервера Samba. Это действие выполняется на порядок проще в графическом интерфейсе. Вот что нужно сделать:
- В главном окне программы нажмите по пункту «Настройка» на верхней панели.
Из списка выберите строку «Параметры сервера».</li>
В появившемся окне, во вкладке «Основной», введите в строке «Рабочая группа» название группы, все компьютеры которой смогут подключаться к серверу Samba.
Примечание: как было сказано в начале статьи, наименование группы должно совпадать у всех участников. По умолчанию у всех компьютеров одна рабочая группа — «WORKGROUP».
</li>Введите описание группы. При желании можете оставить значение по умолчанию, этот параметр ни на что не влияет.</li>
Перейдите на вкладку «Безопасность».</li>
Определите режим аутентификации как «Пользователь».</li>Выберите из выпадающего списка «Шифровать пароли» интересующий вас вариант.</li>Выберите гостевую учетную запись.</li>Нажмите «ОК».</li></ol>
После этого настройка сервера будет окончена, можно переходить непосредственно к созданию папок Samba.
Шаг 5: Создание папок
Если ранее вы не создавали общедоступные папки, то окно программы будет пустым. Для создания новой папки, вам нужно выполнить следующее:
- Кликните по кнопке с изображением знака плюс.
- В открывшемся окне, во вкладке «Основной», нажмите «Обзор».
- В файловом менеджере укажите нужную папку для ее расшаривания.
- В зависимости от предпочтений, поставьте галочки рядом с «Запись разрешена» (пользователю будет позволено редактировать файлы в общедоступной папке) и «Виден» (на другом ПК добавляемая папка будет видна).
- Перейдите во вкладку «Доступ».
- На ней есть возможность определить пользователей, которым будет разрешено открывать расшаренную папку. Для этого поставьте отметку рядом с «Предоставить доступ только определенным пользователям». После этого нужно выбрать их из списка. Если вы собираетесь сделать общедоступную папку, то поставьте переключатель в положение «Предоставить доступ всем».
- Нажмите кнопку «ОК».
После этого в главном окне программы будет отображаться только что созданная папка.
При желании вы можете создать еще несколько папок, используя вышеприведенную инструкцию, или же изменить уже созданные, нажав по кнопке «Изменить свойства выбранного каталога».
Как только вы создадите все нужные папки, можете закрывать программу. На этом инструкция по настройке Samba в Ubuntu с помощью программы System Config Samba окончена.
Nautilus
Есть еще один способ настройки Samba в Ubuntu. Он отлично подойдет тем пользователям, которые не хотят устанавливать дополнительное ПО себе на компьютер и которые не любят прибегать к использованию «Терминала». Все настройки будут выполняться в стандартном файловом менеджере Nautilus.
Шаг 1: Установка
Используя Nautilus для настройки Samba, способ установки программы немного отличается. Эту задачу можно выполнить и с помощью «Терминала», как было описано выше, но ниже будет рассмотрен другой метод.
- Откройте Nautilus, нажав по одноименному значку на панели задач или проведя поиск по системе.
- Перейдите в директорию, где находится нужный каталог для расшаривания.
- Нажмите по нему ПКМ и выберите из меню строку «Свойства».
- В открывшемся окне перейдите на вкладку «Общедоступная папка локальной сети».
- Поставьте галочку рядом с «Опубликовать эту папку».
- Появится окно, в котором нужно нажать по кнопке «Установить службу», чтобы началась установка Samba в систему.
- Появится окно, в котором вы можете ознакомиться с перечнем устанавливаемых пакетов. После ознакомления нажмите кнопку «Установить».
- Введите пароль пользователя, чтобы разрешить системе выполнить загрузку и установку.
После этого вам остается дождаться окончания инсталляции программы. Как только это будет выполнено, можно переходить непосредственно к настройке Samba.
Шаг 2: Настройка
Настраивать Samba в Nautilus’е намного проще, чем с помощью «Терминала» или System Config Samba. Все параметры задаются в свойствах каталога. Если вы забыли как их открыть, то выполните три первых пункта предыдущей инструкции.
Чтобы сделать папку общедоступной, следуйте инструкции:
- В окне перейдите во вкладку «Права».
- Определите права для владельца, группы и остальных пользователей.
Примечание: если вам нужно ограничить доступ к общедоступной папке, то из списка выберите строку «Нет».
- Нажмите «Изменить права на вложенные файлы».
- В открывшемся окне по аналогии со вторым пунктом этого списка определите права пользователей для взаимодействия со всеми вложенными в папку файлами.
- Нажмите «Изменить», а далее перейдите на вкладку «Общедоступная папка локальной сети».
- Отметьте пункт «Опубликовать эту папку».
- Введите наименование этой папки.
Примечание: поле «Комментарий» при желании вы можете оставить не заполненным.
- Поставьте или, наоборот, уберите галочки с «Разрешить другим пользователям изменять содержимое папки» и «Гостевой доступ». Первый пункт позволит пользователям, которые не наделены правами, редактировать вложенные файлы. Второй — откроет доступ всем пользователям, которые не имеют локальную учетную запись.
- Нажмите «Применить».
После этого можно будет закрывать окно — папка стала общедоступной. Но стоит отметить, что если вы не настраивали сервер Samba, то есть вероятность, что папка не будет отображаться в локальной сети.
Примечание: как настроить сервер Samba рассказано в начале статьи.
Заключение
Подводя итоги, можно сказать, что все вышеперечисленные способы в значительной мере отличаются друг от друга, но все они в равной степени позволяют осуществить настройку Samba в Ubuntu. Так, используя «Терминал», вы можете осуществить гибкую настройку, задавая все необходимые параметры как сервера Samba, так и создаваемых общедоступных папок. Программа System Config Samba точно так же позволяет настроить сервер и папки, но количество задаваемых параметров намного меньше. Основным же плюсом этого способа является наличие графического интерфейса, что в значительной мере облегчит настройку для рядового пользователя. Используя файловый менеджер Nautilus, вам не придется скачивать и устанавливать дополнительное программное обеспечение, но в некоторых случаях необходимо будет вручную проводить настройку сервера Samba, используя все тот же «Терминал». Мы рады, что смогли помочь Вам в решении проблемы.Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
Используемые источники:
- https://serverspace.by/support/help/nastroika-samba/
- https://interface31.ru/tech_it/2019/06/nastroyka-faylovogo-servera-samba-na-platforme-debian-ubuntu.html
- https://lumpics.ru/configure-ubuntu-samba/