Содержание

Перейти к концу метаданных
Переход к началу метаданных

Samba - это реализация сетевого протокола SMB/CIFS. Эта программа облегчает организацию общего доступа к файлам и принтерам из систем Linux и Windows и является альтернативой NFS



Общие сведения

Операционная система специального назначения «Astra Linux Special Edition» (ОС СН) содержит в своем составе СЗФС CIFS, позволяющую создавать разделяемые файловые ресурсы (каталоги).

Существует возможность на серверах домашних каталогов (файл-серверах) заводить общие папки, доступные для пользователей. Для конфигурирования файл-сервера следует руководствоваться документацией и справкой по используемой ФС. Монтирование таких каталогов может быть выполнено при помощи команды mount или редактированием конфигурационного файла fstab. Автоматическое монтирование может быть обеспечено PAM-модулем pam_mount.

Примечание

При необходимости работы с разделяемыми ресурсами с помощью стандартных утилит Samba (net, smbclient), в том числе с пользовательскими разделяемыми ресурсами (usershare), могут требоваться дополнительные настройки.

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

Для создания разделяемого файлового ресурса (каталога) на компьютере должен быть установлен сервер Samba

Примечание

При работе в ЕПП отдельный файловый сервер может быть организован средствами ALD, для этого предназначен пакет ald-client-fs. При установке этого пакета на компьютер также устанавливаются необходимые пакеты Samba и формируются конфигурационные файлы. При установке, инициализации, удалении или запуске/остановке службы ALD основные конфигурационные файлы различных служб могут быть перезаписаны на основе шаблонов, что может повлечь потерю внесенных вручную изменений. Во избежание этого, внесение изменений должно осуществляться не только в основные конфигурационные файлы, но и в их шаблоны, расположенные в каталоге /etc/ald/config-templates.

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


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

mkdir /var/lib/samba/share1

chmod 777 /var/lib/samba/share1 -R


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

mkdir /var/lib/samba/share1

mkdir /var/lib/samba/share1/dsp

mkdir /var/lib/samba/share1/secret

mkdir /var/lib/samba/share1/topsecret


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

chmod 777 /var/lib/samba/share1 -R

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

pdpl-file 3:0:-1:ccnr /var/lib/samba/

pdpl-file 3:0:0:ccnr /var/lib/samba/share1

pdpl-file 1:0:0 /var/lib/samba/share1/dsp

pdpl-file 2:0:0 /var/lib/samba/share1/secret

pdpl-file 3:0:0 /var/lib/samba/share1/topsecret


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

/etc/samba/smb.conf
[share1]
available = yes
comment = Share for users
browseable = yes
case sensitive = yes
ea support = yes
fstype = Samba
path = /var/lib/samba/share1
writable = yes
smb encrypt = auto


Перезапустить службы Samba:

service samba restart
Описание конфигурационные параметры разделяемых файловых ресурсов приведено в руководстве man на конфигурационный файл smb.conf.

Доступ к разделяемым файловым ресурсам

Существует возможность использования различных схем организации доступа к разделяемым файловым ресурсам. В общем случае может быть использован доступ с аутентификацией средствами Samba. Для этого применяется собственная БД учетных записей Samba и утилита задания паролей smbpasswd, например вызов:

smbpasswd -a user
добавит в БД учетных записей Samba пользователя 'user' и запросит пароль для нее.

После этого для доступа может использована созданная учетная запись.

При использовании ЕПП применяется аутентификация Kerberos.

Дополнительные сведения приведены в руководстве man для утилит Samba.

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

Просмотр доступных файловых ресурсов возможен с помощью утилит Samba:

поиск и просмотр дерева ресурсов:

smbtree -U пользователь 
подключение к указанному ресурсу и работа с ними
smbclient //сервер/ресурс -U пользователь
Для указанных утилит необходимо задать имя пользователя с помощью опции -U. При этом будет запрошен пароль указанного пользователя.

При работе в ЕПП и использовании аутентификация Kerberos, указанные утилиты могут быть использованы с опцией -k. В этом случае для аутентификации используется текущий кэш билетов Kerberos (ограничения см. в Особенности работы с разделяемыми файловыми ресурсами в версии ОС СН 1.3 и 1.4.).

ВНИМАНИЕ!

Для корректной работы с аутентификацией Kerberos в качестве имени сервера должно использоваться его полное доменное имя (FQDN), например fileserver1.org.net.

Дополнительные сведения приведены в руководстве man для утилит Samba.

Возможно использование утилиты smbnetfs:

smbnetfs /точка_монтирования [опции]
Указанная утилита организует виртуальную файловую систему в указанной точке монтирования для доступа к разделяемым файловым ресурсам Samba. Доступ к тому или иному ресурсу выполняется обращением в указанную точку монтирования по пути вида «/точка_монтирования/сервер/ресурс», например:

ВНИМАНИЕ!

Для использования утилиты smbnetfs пользователь должен быть членом системной группы fuse.

Утилита smbnetfs использует возможности утилит Samba smbtree и smbclient.

Дополнительные сведения приведены в руководстве man для smbnetfs.

Для отображения ресурса в файловом менеджере fly-fm, на сервере следует изменить в файле /etc/samba/smb.conf опцию в секции global на

disable netbios = no

Для отображения ресурсов в разделе «Сеть» менеджера файлов fly-fm: см Особенности работы с разделяемыми файловыми ресурсами в версии ОС СН 1.3 и 1.4.

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

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

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

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

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

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

sudo mount -t cifs //fileserver1.org.net/share1 ~/share1 -o user=пользователь
Для возможности монтирования разделяемого файлового ресурса пользователем в конфигурационный файл /etc/fstab должна быть объявлена строка монтирования, например следующего вида:

/etc/fstab
//fileserver1.org.net/share1  /media/share1  cifs user,rw,noauto,iocharset=utf8,soft  0 0

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

Примечание

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

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

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

apt-get install 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.

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

/etc/security/pam_mount.conf.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">

<pam_mount>

<logout wait="500000" hup="1" term="1" kill="1" />
<mkmountpoint enable="1" remove="true" />
<cifsmount>mount.cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o %(OPTIONS)</cifsmount>
<volume fstype="cifs" server="fileserver1.org.net"
path="share" mountpoint="/media/share"
options="user=%(USER),rw,setuids,perm,soft,iocharset=utf8" />

</pam_mount>

Внимание

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

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

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

Пример:

path="share" mountpoint="/media/ald_share"
options="user=%(USER),rw,setuids,perm,soft,sec=krb5i,cruid=%(USERUID),iocharset=utf8" />

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

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

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

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



Пример:

В примере рассматривается стенд из 2 машин:

srv.ex.ru - контроллер домена ALD и сервер Samba;

clt.ex.ru - клиент ALD.

На srv.ex.ru запускаем скрипт:

ald_samba_share_wiki.py srv.ex.ru
Выставляем максимальный уровень и флаг CCNR для каждой папки в пути /var/lib/samba/ald_share.

Внимание

Путь расположения шары на сервере может быть изменен в скрипте, см. Описание скрипта. В папке /var/lib/samba/ald_share создаем количество папок равных количеству уровней с которыми планируется работать пользователям. Для удобства называйте их соответствующими именами, например /lvl0, /lvl1, /lvl2, /lvl3. Этим папкам необходимо присвоить соответствующий уровень и флаг CCNR.

На clt.ex.ru запускаем скрипт:

ald_samba_share_wiki.py srv.ex.ru
Выставляем максимальный уровень и флаг CCNR для каждой папки в пути монтирования, по умолчанию это /media.

Перезапускаем сервис samba на srv.ex.ru. Теперь можно заходить пользователем ALD на clt.ex.ru и в /media/ald_share будет доступна смонтированная шара.

Описание скрипта

Особенности работы с разделяемыми файловыми ресурсами в версии ОС СН 1.3

Для работы с разделяемыми файловыми ресурсами в менеджера файлов fly-fm ОС СН версии 1.3 необходимо установить пакеты libqca2-plugin-ossl, gnome-keyring:

apt-get install libqca2-plugin-ossl gnome-keyring
После этого с помощью раздела «Сеть» менеджера файлов fly-fm появиться возможность работы с разделяемыми файловыми ресурсами.

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

В ОС СН версии 1.3 не поддерживается работа с разделяемыми файловыми ресурсами при использовании аутентификации по Kerberos (в случае работы в ЕПП) с помощью утилит smbclient и менеджера файлов fly-fm. В этом случае следует использовать монтирование таких ресурсов средствами mount (mount.cifs).

Особенности работы с разделяемыми файловыми ресурсами в версии ОС СН 1.4

Для работы с разделяемыми файловыми ресурсами в менеджера файлов fly-fm ОС СН версии 1.4 необходимо установить пакеты libqca2-qt5-plugin-ossl, fly-secretsservice:

apt-get install libqca2-qt5-plugin-ossl fly-secretsservice
После этого с помощью раздела «Сеть» менеджера файлов fly-fm появиться возможность работы с разделяемыми файловыми ресурсами.

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

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