smbnetfs

Материал из ALT Linux Wiki
Перейти к: навигация, поиск

Прозрачный доступ к samba-ресурсам с помощью smbnetfs

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


История проблемы

Идеология UNIX

Всё есть файл. Файлы, устройства, процессы и т. п. можно найти в дереве файлов: /path/filename. Правила обращения с каталогами и файлами просты и едины для всех сущностей. Правда, для этого нужно примонтировать новую сущность к общей файловой иерархии.

Альтернативный подход

Всё есть обмен сообщениями между программами по какому-то определенному протоколу. Монтировать ничего никуда не нужно, но для нормального общения, желательно заранее знать, какой именно протокол используется (и, разумеется, обеспечить его поддержку со стороны приложений). Если на каждый протокол имеется отдельная программа, то вопросов нет. А если хочется в одной программе реализовать поддержку нескольких протоколов?

Так появился альтернативный подход: URI: protoname://domain/path/filename?parameters.

smb://

И в KDE и в Gnome просто необходимо было реализовать обзор samba-сетей, наподобие «Обзора сети» в Windows. И он был реализован именно через URI. А заодно была прикручена поддержка целого букета известных и «свежевыдуманных» протоколов. Так появились адреса: smb://, media://, system:// и т. п.

Казалось бы, что наступило полное благоденствие, но… далеко не все приложения поддерживают такую адресацию. И далеко не все разработчики горят желаниям завязывать свои приложения на библиотеки KDE, Gnome.

Одним из самых известных проблемных приложений является OpenOffice. В интернете вы найдёте огромное количество жалоб, что «файлы не сохраняются в сетевой папке». Причина: неподдерживаемая адресация вида smb://

И ладно бы вещь шла о чём-то действительно несовместимом с идеологией файловой иерархии, но нет — в большинстве случаев, это по-прежнему просто файлы.

Поэтому, часто приходится отказываться от этих новшеств и действовать по-старинке. Монтировать нужные ресурсы.

/etc/fstab

Один раз прописываем монтируемые ресурсы в файле, монтируем при загрузке рабочей станции. Просто, как топор. Недостатки, вытекающие из этой простоты:

  • все пользователи системы к конкретному ресурсу будут обращаться от имени одного самба-пользователя.
  • пользователи не могут переопределить настройки монтирования, без создания бреши в безопасности системы.
  • невозможно одной командой прикрутить все шары самба-сервера и тем более всех серверов домена.
  • при изменениях организации шар на сервере, нужно вносить изменения на каждом клиенте.

FIXME: Хорошо бы здесь написать пример команды. А пока, читайте маны, спрашивайте у Яндекса...

Есть две подходящие команды монтирования: mount.smbfs и mount.cifs. Рекомендуется использовать вторую. То есть в /etc/fstab в столбце типа файловой системы указать cifs. Параметры у команд отличаются, будьте бдительны.

pam_mount

Модуль PAM, монтирует нужные ресурсы при логине пользователя, размонтирует при выходе. Очень удобно, когда логин/пароль пользователя Линукс совпадает с логином/паролем пользователя из домена Самбы (Добиться этого не слишком сложно. например, используя авторизацию winbind, но иногда это может быть совсем нежелательно). Часть настроек может переопределяться пользователем с помощью конфигов в его домашнем каталоге. Недостатки:

  • Если зайти несколько раз под одним и тем же пользователем, а потом выйти хотя бы из одного сеанса, то ресурсы размонтируются и станут недоступны во всех сеансах.
  • невозможно одной командой прикрутить все шары самба-сервера и тем более всех серверов домена.
  • при изменениях организации шар на сервере, нужно вносить изменения на каждом клиенте.

FIXME: Хорошо бы здесь написать пример команды. А пока, читайте маны, спрашивайте у Яндекса...

smbnetfs

Использует технологию ruwp:FUSE для динамического отображения самба-домена, на файловую систему. Способна по одной команде отобразить целый домен, отдельный сервер, отдельные шары или комбинацию всех трёх вариантов. Авторизация определяется, как общесистемном уровне, так и каждым пользователем отдельно. Особенности:

  • В отличие от перечисленных вариантов, для функционирования этого в памяти должен висеть процесс smbnetfs, который будет перехватывать обращения к точке монтирования.
  • На старых версиях самбы возможны утечки памяти, но очень незначительные (читайте документацию к пакету).

FIXME: Хорошо бы здесь написать пример команды. А пока, читайте маны, спрашивайте у Яндекса...