Настройка samba rosa linux

Обновлено: 05.07.2024

Даже небольшая сумма может помочь написанию новых статей :)

Или поделитесь ссылкой на эту статью со своими друзьями.

В этой статье будет рассмотрен наиболее простой случай настройки доступа к Linux файлам. Когда нужно предоставить анонимный доступ к общим ресурсам Linux. Это распространенная ситуация в домашних сетях и в сети небольшого офиса. Расшарить папку Linux по сети можно используя несколько протоколов. Но чаще всего это делается через сервер Samba с использованием протокола SMB (CIFS). Именно этот способ и будет описан в статье.

Частое использование Samba и протокола SMB связано с тем, что обычно нужно на Linux расшарить папку для Windows. А протокол SMB (CIFS) используется в операционных системах Windows для организации общего доступа к файлам и принтерам. Компьютер под управлением Linux, на котором установлен и настроен сервер Samba, в локальной сети выглядит точно так же как и компьютер под управлением Windows.

Итак, что, и в какой последовательности необходимо сделать для того чтобы в Linux предоставить сетевой доступ к папке и файлам?

Установка Samba

Это первый шаг. В некоторых дистрибутивах установку Samba можно указать в параметрах установщика, как например Alt Linux или Rosa Linux. Но в большинстве дистрибутивов Samba устанавливается отдельно, при необходимости. Например в Ubuntu установка Samba выполняется автоматически, если вы открываете общий доступ к папке через файловый менеджер Наутилус.

В общем случае установка Samba очень проста - обычно установочный пакет так и называется - samba. В каждом дистрибутиве Linux есть программа для управления программными пакетами. Которая показывает установленные пакеты и позволяет устанавливать новые пакеты. Например в дистрибутиве Ubuntu это три графические программы - Gdebi, Synaptic и Software-center. И две консольные - apt и dpkg.

Итак, шаг первый - проверить установлен ли сервер Samba и если нет тогда установить его.

Настройка доступа в Samba без пароля

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

  1. Указать папку, которая будет доступна по сети.
  2. Указать способ доступа к компьютеру через сеть (способ аутентификации для входа на компьютер через сеть).

С первым пунктом, я думаю, все понятно. Второй пункт чуть сложнее. Samba может предоставлять сетевой доступ к компьютеру Linux либо с авторизацией (с указанием логина и пароля) либо анонимно (без логина и пароля). Как и было написано в начале статьи, я опишу настройку анонимного доступа.

Настроить сервер Samba можно через GUI интерфейс или через непосредственное редактирование файла конфигурации Samba.

Настройка Samba через GUI интерфейс

Чаще всего для этого используется программа system-config-samba. Она есть во всех популярных дистрибутивах Linux. Но не во всех дистрибутивах она устанавливается автоматически (из коробки). Так что нужно проверять ее наличие и устанавливать, если ее нет. Эта программа позволяет не только указать общую папку, но и добавлять Samba-пользователей и управлять некоторыми параметрами сервера Samba.






Параметры, изменяемые через эту программу, записываются в файл глобальной настройки Samba - /etc/samba/smb.conf.

В графической оболочке GNOME есть файловый менеджер Наутилус в котором указать общий доступ к папке можно непосредственно в свойствах этой папки (пакет nautilus-share).


Параметры, изменяемые через файловый менеджер Наутилус, записываются в файл

/.gnome2/nautilus-share-modified-permissions и в папку /var/lib/samba/usershares.

Настройка Samba через файл конфигурации

Файл конфигурации Samba обычно находится в папке /etc/samba и называется smb.conf (полный путь к файлу /etc/samba/smb.conf). Через этот файл можно полностью управлять настройками сервера Samba. Однако редактировать этот файл нужно осторожно.

Samba - настройка доступа без пароля

На самом деле протокол SMB не дает анонимного доступа к файлам и папкам. Он предоставляет два способа авторизации:

  1. Авторизация при сетевом входе на компьютер.
  2. Авторизация при доступе к разделяемому ресурсу (папке, файлу).

Тем не менее, комбинируя параметры Samba и параметры файловой системы можно получить псевдо анонимный доступ - то есть использование сетевых ресурсов без учетной записи пользователя и без пароля.

Если настраивать Самба через файл smb.conf, тогда нужно, в секции [global], указать следующие параметры:

  • security = user
  • map to guest = bad user (или bad password)

В случае значения bad user, при сетевом входе, будет запрошено имя пользователя и пароль. Но их можно указать любые "от фонаря". И тем не менее вход будет выполнен. В случае значения bad password не будет запроса имени пользователя и пароля.

Параметр map to guest указывает Самбе, что всех кто не смог авторизоваться нужно тем не менее впускать в систему, но с правами гостя.

Далее в секции, которая описывает общую папку Linux, нужно указать четыре параметра:

  • [lan]
  • path = /home/user/lan
  • guest ok = yes
  • read only = no
  • create mask = 0777
  • directory mask = 0777

Это пример такой секции в файле smb.conf. Заголовок секции определяет имя папки которое будет видно в сети. Параметр path определяет саму папку в файловой системе Linux. А параметры guest ok и read only разрешают запись в папку и гостевой доступ к папке. И последние параметры, create mask и directory mask, указывают, что все файлы и папки, которые будут там созданы через сеть (сетевыми пользователями) должны получить атрибуты полного доступа в файловой системе Linux.

Последние два параметра очень важны, чтобы у всех сетевых пользователей была возможность изменять файлы в этой сетевой папке Linux. Если не указать параметры create mask и directory mask, тогда новые файлы будут доступны только тем кто войдет в эту папку гостем. А например уже локальный пользователь Linux не сможет их изменять.

Вот минимальная конфигурация Samba для анонимного доступа к файлам Linux.

Разрешения Linux для доступа без пароля

Во-первых нужно установить полные права на папку Linux, которая будет сетевой. Полные права доступа на папку в Linux это разрешение на исполнение и запись для: владельца, группы и всех остальных. В Linux широко используется цифровое сокращение для обозначения прав доступа - полный доступ для папки это 777. Если такие права не установить на папку, тогда сетевые пользователи либо не смогут войти в эту папку, либо не смогут в ней создавать новые файлы или папки.

Установить разрешения на файл (папку) в Linux можно через файловый менеджер (через свойства папки) или в терминале, программой chmod.

Если ограничиться только лишь настройкой Samba и установкой разрешений на папку, тем не менее возможно появление проблем с доступом к отдельным файлам в этой сетевой папке Linux.

  1. если локальный пользователь Linux войдет в эту папку через файловый менеджер и создаст в ней новый файл;
  2. если локальный пользователь Linux скопирует в эту папку файл из другой своей локальной папки.

В обоих случаях новый файл будет недоступен для редактирования сетевыми пользователями. Почему это произойдет? Новый файл получит права доступа Linux 644, то есть полный доступ только для владельца файла. А если файл будет скопирован из другой папки, то он сохранит свои права и после копирования.

Что делать для решения этой проблемы?

Есть разные способы решения. Кто-то советует периодически (например по заданию cron) изменять права всем файлам в папке на 666 (права полного доступ для всех без исключения). Это работает, но на мой взгляд не вариант. Я считаю что такое присвоение прав должно происходит автоматически, без лишних телодвижений.

Другие люди советуют включить ACL на файловой системе Linux и затем указать ACL по умолчанию для сетевой папки (со значением 777).


Это работает, но только наполовину. Если локальный пользователь сам создаст новый файл, этот файл получит атрибуты 666. Но если локальный пользователь скопирует файл из другой папки, то файл сохранит свои старые атрибуты.

Однако есть два способа которые полностью решают проблему.

Первый способ, самый простой.

Локальному пользователю, нужно заходить в сетевую папку тоже через сеть! В этом случае все его операции в папке будут проходить через сервер Samba. А Самба настроена на полный доступ.

Достоинство этого способа в том, что ничего не нужно делать дополнительно. Недостатка два:

  1. Скорость файловых операций для локального пользователя будет ниже чем если бы он зашел в сетевую папку обычным образом.
  2. Локальный пользователь может забыть и войти в папку обычным образом.

Второй способ - настройка сетевого доступа через bindfs

Использовать bindfs. Для этого нужно установить этот пакет и затем вручную или автоматически смонтировать сетевую папку через bindfs.

Вот пример автоматического монтирования через fstab:

В примере папка монтируется сама в себя, но можно указать другую точку монтирования. Важно указать параметр монтирования perms=0777 - это полный доступ на все файлы и папки.

При использовании bindfs, способ доступа к папке уже не имеет значения, локально выполняется операция или через сеть, в любом случае у объектов внутри этой папки будут атрибуты полного доступа.

В этом случае параметры create mask и directory mask в файле smb.conf уже не нужны.

Резюме

Еще раз напоминаю, что это простейшая конфигурация для полностью доверенной локальной сети. В которой не нужны никакие ограничения по доступу к файлам.

Но в том случае, когда доступ нужно разграничивать, настройка будет похожа. Нужно лишь добавлять пользователей в Samba, установить нужные разрешения в файловой системе Linux. Быть может даже создать специальную локальную группу пользователей Linux, в которую продублировать всех пользователей Самбы.

Настройка доступа без пароля для других ОС

Если вы живете в г. Краснодар и вам необходимо настроить локальную сеть в Linux

Иван Сухов, 2015, 2018 г.

Этичный хакинг и тестирование на проникновение, информационная безопасность

Книга по SMB и Samba на русском языке. Оглавление

Samba — это SMB для Linux

Далее мы будем говорить про Samba, но мы затронем только вопросы SMB.

Начните с установки пакетов samba и smbclient.

В Debian, Linux Mint, Ubuntu, Kali Linux и их производных для установки samba выполните команду:

В Arch Linux, BlackArch и их производных выполните команду:

Как в Linux увидеть все компьютеры Windows с совместными ресурсами

Для показа всех совместных сетевых ресурсов Windows выполните команду:

В этой и последующих командах используется флаг -N, который означает не использовать пароль. Если же вы используете пароль, то укажите опцию -U с именем пользователя, пароль нужно будет ввести интерактивно.


В начале идёт имя рабочей группы WORKGROUP. Затем следует список компьютеров. Для тех из них, для которых удаётся получить список сетевых папок, они выводятся.

Как можно увидеть выше, для компьютера \\VYACHESLAV получен список совместно используемых ресурсов, а для компьютера \\HACKWARE-MIAL — нет. При этом если я включал на компьютере \\HACKWARE-MIAL поддержку протокола SMB 1, а при запуске команды указывал хоть какое-то имя пользователя, например:

либо просто запускал smbtree с правами администратора:

то мне удавалось получить список файлов также и для компьютера \\HACKWARE-MIAL. UDP: видимо, такое поведение в том, что совпадали имена польозвателей на компьютерах с Linux и Windows.

Как в Linux вывести доступные по сети ресурсы (совместные папки и принтеры Windows)

Предыдущая команда показала нам несколько компьютеров с сетевыми папками. Предположим, меня интересует компьютер \\HACKWARE-MIAL, чтобы вывести его сетевые папки я запускаю команду вида:

в моём случае это:


Кстати, вместо имени компьютера можно указать IP адрес.

В полученном выводе Share и Users являются общими сетевыми папками.

исчезнут, если создать файл /etc/samba/smb.conf.

пропадут, если на компьютере с сетевой папкой включить поддержку протокола SMB1.

Как я уже говорил чуть выше, флаг -N означает не использовать пароль. Если же вы используете пароль, то укажите опцию -U с именем пользователя, пароль нужно будет ввести интерактивно.

Как и для smbtree, для smbclient необязательно использовать sudo, но без sudo для некоторых компьютеров программа срабатывает нормально, а для некоторых завершается ошибкой:

Как подключиться к сетевой папке Windows из Linux

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

Кроме интерактивного режима, можно просматривать содержимое сетевых папок и в проводнике Linux — об этом будет рассказано позже, а пока остановимся на подключении в командной строке.

Для входа в интерактивный режим запустите команду вида:

Например, я хочу подключиться к компьютеру //HACKWARE-MIAL/ и выполнить действия с файлами в сетевой папке Share, тогда моя команда следующая:

Если вы хотите, чтобы при подключении была изменена текущая рабочая директория в сетевой папке, то есть чтобы была открыта другая папка, то используйте опцию -D. К примеру, я хочу подключиться к папке NewFolder, тогда команда следующая:

Подключение к SMB папке, требующий авторизации

К примеру, на компьютере //HACKWARE-MIAL/ имеется сетевая папка ShareRestricted, права на просмотр которой есть у пользователя ShareOverlord. Для просмотра шары, защищённой паролем, нужно использовать команду вида:

В моём случае это команда:


Команды SMB в Linux

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

Выводит все доступные команды:

Для показа справки по определённой команде, выполните

Переход в другой каталог (смена текущей рабочей директории) на удалённой системе:

Переход в другую директорию на локальной системе:

Удаление файла в шаре:

Имеется псевдоним этой команды:

И ещё одна команда со схожей функцией:

Эта команда рекурсивно удалить все совпавшие с шаблоном имени файлы и директории.

Показ файлов и папок в текущей папке:


Имеется псевдоним этой команды:

И ещё один, даже более короткий псевдоним:

Для повторного скачивания файла:

Для скачивания всех файлов, чьём имя совпадает с шаблоном:

Например, чтобы скачать все файлы с файловым расширением .exe нужно запустить такую команду:

Для каждого файла, совпавшего с шаблоном, будет выполнен запрос на скачивание. Если вы действительно хотите его скачать, то нажмите клавишу «y»:

Также имеется команда newer, которая скачивает файлы (mget), которые новее, чем указанный локальный файл. Используется она так:

Выгрузка файла на общую папку:

Следующая команда скопирует локальный файл в шару:

Повторная закачка файла:

Для закачки всех файлов, чьём имя совпадает с шаблоном:

К примеру, чтобы закачать в шару все файлы (из локальной текущей рабочей директории), которые имеют расширение *.cap, нужно запустить команду:

Для каждого файла, совпавшего с шаблоном, будет выполнен запрос подтверждения, если вы действительно хотите его закачать, то нажмите клавишу «y»:


Включение и отключение рекурсии

Можно включать и отключать рекурсивный режим для mget и mput.

Показ всей возможной информации о файле:


В выводимой информации можно увидеть альтернативное (DOS) имя, временные метки (дата создания, доступа, записи и изменения файла), атрибуты.

Копирование файла на сервере:

Создание директории:

Удаление директории:

Удаление файлов

Следующая команда удалит все совпавшие с МАСКОЙ файлы:

Псевдоним команды для удаления файлов:

С помощью команды wdel можно удалить все совпавшие файлы по подстановочным символам:

Переименование файлов:

Ссылки

Создание жёсткой ссылки Windows:

Создание жёсткой ссылки UNIX:

Создание символьной ссылки UNIX:

Выход с сервера:

Вывод истории команд текущей сессии:

Просмотр содержимого текстового файла:

Показ текущей рабочей директории:

Другой вариант показа текущей рабочей директории — это команда cd без аргументов:

Создание и извлечение архивов tar

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

К примеру, я хочу скачать файлы all-databases.sql besside.log ChromeSetup.exe из совместной папки и объединить их в архив all.tar, тогда моя команда следующая:

Для установления режимов tar используется команда

Установка таймаута операций:

Таймаут устанавливается в секундах и по умолчанию равен 20.

Установка нового соединения:

Закрытие сессии, выход:

Вывод списка открытых подключений:

Отображение текущего активного подкючения:

Изменение удалённой директории (переход на одну папку выше):

Выполнение команд в локальной системе:

Чтобы команда выполнялась не на удалённой системе, а на локальной, поставьте перед ней ! (восклицательный знак), например^

Автоматическое выполнение команд в сетевой папке Windows

Необязательно каждый раз вводить все команды вручную — вы можете перечислить их через запятую и указать в двойных кавычках с опцией -c, например:

Как смонтировать общую папку Windows/Samba в Linux

Сетевая папка Windows может быть доступна в файловых менеджерах Linux как любая другая локальная папка. Для этого её нужно смонтировать. После монтирования не придётся использовать консоль для просмотра списка файлов и скачивания или закачивания файлов.

Начните с установки пакета cifs-utils.

В Debian, Linux Mint, Ubuntu, Kali Linux и производных выполните:

В Arch Linux, BlackArch и производных выполните:

Предыдущие команды smbtree и smbclient понимали имена компьютеров Windows, такие имена как HACKWARE-MIAL. Монтирование выполняется с помощью команды mount, которая такие имена не умеет обрабатывать без помощи преобразования имён DNS. Поэтому при монтировании можно либо:

  1. Использовать вместо имён компьютеров IP адрес. В этом случае у компьютера с сетевой папкой должен быть постоянный (статичный) IP адрес
  2. Либо настроить преобразование имён для компьютеров Windows. Это можно сделать, например, с помощью файла /etc/hosts. Кстати, в этом случае у компьютера с общей папкой также должен быть постоянный IP адрес (смотрите Как настроить локальный DNS используя файл /etc/hosts в Linux)

В общем, в любом случае настройте в роутере или в самой Windows постоянный локальный IP.

Если вы хотите настроить преобразование имён с помощью файла /etc/hosts, то откройте его:

И добавьте туда запись вида

Например, у меня IP_АДРЕС это 192.168.0.101, а именем компьютера является HACKWARE-MIAL, тогда я добавляю следующую запись:

Пингуем по имени компьютера Windows, чтобы убедиться, что всё сработало:

Чтобы не возникало проблем с правами доступа, папка, куда монтируется шара (например, /mnt/share/), должна принадлежать текущему пользователю Linux — если вы создавали папку без sudo, то она уже принадлежит обычному пользователю. Но если вы создавали папку с sudo (например, иначе это невозможно сделать в /mnt/), то вам нужно поменять её владельца командой вида::

Например, чтобы поменять владельца папки /mnt/share/ на текущего пользователя:

Теперь для монтирования сетевой шары Windows нужно запустить команду вида:

В этой команде вы должны вставить свои значения для

Значение других элементов команды:

  • sudo — монтировать шару можно и без прав суперпользователя, но использовать опцию -o, после которой указываются опции для монтирования, можно только с правами root
  • -t cifs выбор файловой системы для монтирования
  • -o означает, что после этой опции будут перечислены опции для монтирования:
  • username=guest,password= - произвольное имя пользователя без пароля — используется для подключение к общей папки, для которой не требуется вход. Вместо этой конструкции можно указать просто guest, но в этом случае на некоторых системах всё равно запрашивается пароль. По моим наблюдениям, пароль запрашивается когда имя текущего пользователя на Linux совпадает с именем пользователя на Windows
  • uid=1000 — в качестве владельцев всех файлов в шаре будет указан текущий пользователь Linux
  • iocharset=utf8 — эта кодировка позволяет работать с именами файлов, в которых используются не только латинские буквы

К примеру, путь до сетевой шары у меня //HACKWARE-MIAL/Share, её я хочу смотрировать в папку /mnt/share, тогда команда будет следующей:

Вид сетевой папки Windows в Double Commander:


Вид сетевой папки в стандартном проводнике Linux:


Для размонтирования нужно запустить следующую команду (укажите либо точку монтирования, либо ресурс, который был смонтирован):

Напомню, что в предыдущей части я не только настроил папку для входа без пароля, но на том же самом компьютере и настроил вторую папку с именем ShareRestricted. У этой папки владелец ShareOverlord, а пароль для входа 1234. Для подключения папки, доступ к которой возможен только по паролю, используется та же самая команда, но нужно указать реальные учётные данные:

Чуть дальше очень похожий набор опций, в том числе пароль в открытом виде, мы будем использовать в файле /etc/fstab для настройки автоматического монтирования сетевой папки. Файл /etc/fstab доступен для чтения всем а, следовательно, также доступен всем ваш пароль от Windows в нём. Чтобы обойти эту проблему, можно использовать файл с учётными данными. Это файл содержит только имя пользователя и пароль.

Используя текстовый редактор, создайте файл с учётными данными для входа на ваш удалённый сервер:

В этот файл введите имя пользователя и пароль от Windows:

В моём примере это:

Сохраните файл и закройте редактор.

Измените права доступа к этому файлу, чтобы предотвратить нежелательный доступ к вашим учётным данным:

Посмотрите абсолютный путь до этого файла:

В моём случае абсолютный путь:

Теперь вместо двух опций:

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

Моя команда стала выглядеть так:

Настройка автоматического монтирования сетевой папки в Linux

Автоматически монтируемые файловые системы прописываются в файле /etc/fstab. Откроем этот файл:

Теперь в него нужно добавить строку вида:

Мы добавили опцию nofail, чтобы ОС нормально загружалась даже если не удалось смонтировать данную файловую систему. Ещё добавьте опцию _netdev, эта опция означает, что файловая система находится на устройстве, которому требуется доступ к сети (используется для предотвращения попыток системы смонтировать эти файловые системы до тех пор, пока в системе не будет включена сеть).

Для моего примера это строка:

Сохраним и закроем этот файл. Для проверки выполним:

Если сетевая папка успешно смонтировалась, значит можно выполнить проверку перезагрузкой.

Если нужно смонтировать папку для входа в которую не требуется пароль, то используйте в качестве опции учётные данные «username=guest,password=»:

Либо можно по-прежнему использовать файл .smbcredentials, как это было показано выше:

/.smbcredentials запишите следующее:

Как создать общую сетевую папку в Samba

Если в этой статье вы пропустили предыдущие части, так как вам нужно только настроить файловый сервер на Linux, то начните с установки пакета samba.

Следующая команда не сработает, если отсутствует файл /etc/samba/smb.conf. Если у вас тоже нет этого файла, то создаёте его заглушку — к настройке самого файла smb.conf мы вернёмся позже:

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

Для установки пароля Samba, выполните следующую команду:

Если вы хотите, чтобы у пользователя не было пароля, то укажите опцию -n.

Создайте папку, которая станет совместно используемой:

Узнаем абсолютный путь до папки

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

Добавьте туда строки вида:

Обратите внимание, что все пробелы в строках выше являются обязательными.

Для моих данных это строки:

Теперь запустим службу SMB:

Для добавления службы в автозагрузку выполните:

На самом деле, мы настроили не полноценную Samba, а только файловый сервер SMB. Одно из следствий этого — показанные выше способы обнаружения сетевых папок, такие как команда smbtree в Linux или переход во вкладку «Сеть» в проводнике Windows, не обнаружат нашу шару.

Для подключения к этой общей сетевой папке на Linux нужно использовать IP адреса компьютера Linux вместо имени компьютера, как это мы делали раньше. Кстати, поэтому нужно настроить статичный IP (смотрите статью «Как настроить Linux на использование статичного IP адреса»).

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

Посмотрите локальный IP адрес компьютера, на котором запущена Linux:

У меня этим IP является 192.168.0.89, а папку, как мы помним, я создал с именем linuxshare, тогда в Windows я перехожу в проводнике во вкладку «Сеть» и подключаюсь к этой папке следующим образом:

Вводим учётные данные (которые мы установили командой smbpasswd):


Видим содержимое совместно используемой папки, размещённой на Linux с помощью SMB:


Для подключения к сетевой папке из консоли Linux, запустите команду вида:

Для моего примера это:

После ввода пароля нам становится доступным содержимое сетевой папки.


Эту папку можно смонтировать как это было показано в предыдущем разделе, либо подключать в Windows как сетевой диск, как это было показано в первой части.

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

Или группу каталогов с различным мандатным контекстом:

mkdir /share1
mkdir /share1/zero
mkdir /share1/dsp
mkdir /share1/secret
mkdir /share1/topsecret

Установить желаемые дискретные атрибуты, например:

chmod 777 /share1 -R

Разграничить мандатный доступ в соответствии с пунктом "4. МАНДАТНОЕ РАЗГРАНИЧЕНИЕ ДОСТУПА" документа "Руководство по КСЗ. Часть 1 РУСБ.10015-01 97 01-1"(ссылка):

pdpl-file 3:0:-1:ccnr /share1/
pdpl-file 1:0:0 /share1/dsp
pdpl-file 2:0:0 /share1/secret
pdpl-file 3:0:0 /share1/topsecret

Конфигурация Samba

Внести в конфигурационный файл /etc/samba/smb.conf информацию о разделяемом файловом ресурсе:

Для отображения ресурса в разделе сеть файлового менеджера fly-fm под меткой не отличной от нуля через протокол NetBIOS , установить опцию "disable netbios = no"

После сохранения настроек перезапустить сервис Samba:

Подключение ресурса в сессии не отличной от нуля

Запустить менеджер файлов (fly-fm) и открыть раздел "Сеть", в котором отобразятся ресурсы Samba при условии включенного NetBIOS и его видимости:


Если ресурс не виден для других и NetBIOS отключен, то его можно добавить самостоятельно, выбрав закладку "Сеть" или правым щелчком по разделу "Сеть":


Для использования ресурсов Samba пользователь должен входить в группу fuse

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12

Монтирование разделяемых файловых ресурсов

Монтирование разделяемого файлового ресурса выполняется командой mount с указанием соответствующего типа сетевой ФС, например:

mount.cifs //сервер/ресурс /точка_монтирования [-o опции]
mount -t cifs //сервер/ресурс /точка_монтирования [-o опции]

Первый вариант команды доступен только суперпользователю.

В качестве опций команде могут передаваться параметры монтирования, такие как имя пользователя, используемый тип аутентификации, кодировка, использование прав доступа и т.п. Полный список опций приведен в руководстве man для команд mount и mount.cifs . Без соответствующей записи в /etc/fstab пользователь может использовать команды монтирования только с помощью sudo (точка монтирования

/share1 должна быть создана заранее):

/share1 -o user=пользователь

Для возможности монтирования разделяемого файлового ресурса пользователем в конфигурационный файл /etc/fstab:

Должен быть установлен пакет cifs-utils:

должна быть объявлена строка монтирования, например следующего вида:

Точка монтирования должна быть создана заранее и доступна пользователю, опция user предоставляет возможность монтирования указанного ресурса простому пользователю.
Полный список опций приведен в руководстве man для команд mount и mount.cifs . Описание формата конфигурационного файла /etc/fstab приведено в руководстве man для fstab.

Для того что бы были видны каталоги под уровнем - в fstab на клиенте прописываем следующие параметры:

При использовании с аутентификацией Kerberos в ЕПП в строке опций должен быть указан параметр аутентификации sec=krb5i . В этом случае при монтировании будет использоваться текущий кэш Kerberos пользователя.

Автоматическое монтирование ресурсов при входе пользователя с помощью pam_mount

Для автоматического монтирования разделяемых файловых ресурсов при входе пользователя используется pam модуль pam_mount, предоставляемый пакетом libpam-mount, который может быть установлен следующим образом:

Настройка pam модуля осуществляется с помощью конфигурационного файла /etc/security/pam_mount.conf.xml.

Использование pam модуля указывается в соответствующих pam сценариях (common-auth, common-session) в каталоге /etc/pam.d.

Описание возможностей pam модуля pam_mount и формат его конфигурационного файла приведены в руководстве man для pam_mount и pam_mount.conf.

Для монтирования с помощью pam-mount разделяемых файловых ресурсов СЗФС CIFS , представляющих собой домашние каталоги пользователей, конфигурационный файл должен быть модифицирован следующим образом (в пределах тега pam_mount ):

При использовании с аутентификацией Kerberos в ЕПП в строке опций монтирования должен быть указан параметр аутентификации sec=krb5i . В этом случае при монтировании будет использоваться текущий кэш Kerberos пользователя.

Так же в строке опций монтирования должен присутствовать параметр cruid=%(USERUID) , поскольку монтирование во время создания сессии выполняется от имени привилегированного пользователя.

Для точки монтирования mountpoint должен быть указан отдельный каталог, например: /media/ald_share

Тег logout определяет поведение в процессе размонтирования ФС. К этому времени все процессы должны освободить точку монтирования, в противном случае им посылаются соответствующие сигналы прерывания работы.

Тег mkmountpoint отвечает за автоматическое создание и удаление точки монтирования.

Тег cifsmount определяет команду, с помощью которой монтируется указанный тип ФС.

Тег volume объявляет непосредственно параметры монтирования разделяемого файлового ресурса. Пользователь должен существовать в БД учетных записей Samba и иметь соответствующий пароль.

Пожалуй нет ни одного офиса, в котором не применялись бы общие ресурсы локальной сети, будь то папки или принтеры. Крупные и средние компании используют возможности Active Directory, компании поменьше - используют штатные средства ОС Windows или Samba, но на серверах под управлением ОС Linux. Рассмотрим все случаи.

Что такое Samba?

Samba - серверное приложение, реализующее доступ клиентских терминалов к папкам, принтерам и дискам про протоколу SMB/CIFS.


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

Linux

Установка и настройка Samba-сервер для Ubuntu выполняется следующими этапами.

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

apt-get update && apt-get upgrade

Устанавливаем пакет Samba:

apt-get install -y samba samba-client

Создадим резервную копию файла конфигурации:

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

Создадим директории для файлов, например в каталоге /media:

Важно! По умолчанию, директория /media располагается в корне системы /, для нее редко создается свой раздел. По этой причине возможно переполнение корневого раздела. Во избежание этой неприятной ситуации, рекомендуем монтировать отдельный жесткий диск в /media/samba.

Создаем каталог для всех пользователей:

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

chmod -R 0755 /media/samba/public

Также следует воспользоваться командой chown для смены владельца и/или группы.

Создаем директорию для ограниченного круга лиц:

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

Добавляем пользователей Samba:

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

usermod -aG smbgrp user1

Изменим группу, которой принадлежит приватная директория:

chgrp smbgrp /media/samba/private

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

smbpasswd -a user1

С помощью текстового редактора, например, nano, редактируем конфигурационный файл samba:

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

map to guest = bad user

wins support = no

force user = nobody

valid users = @smbgrp

Сохраняем используя сочетание 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” @ (“собака”).

Важно! Имя директории общего доступа, отображаемое пользователям, равно имени секции в которой оно описано.

Читайте также: