Admin/tricks/cifs

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
Wackowiki-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была автоматически перемещена с old.wiki.etersoft.ru.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Настройка совместной работы по протоколу CIFS

  • ##FTN CIFS1##
  • ##FTN CIFS2##
  • ##FTN CIFS3##
  • ##FTN CIFS4##

WINE@Etersoft позволяет настроить совместное использование файловой базы данных в гетерогенной среде. В качестве файлового сервера при этом может быть использован SAMBA 3.0.14 и выше, Windows 2000 и выше, или другой файловый сервер, работающий по протоколу CIFS. Совместная работа как Windows, так и Linux-клиентов по протоколу CIFS возможна только при использовании модуля CIFS@Etersoft.



Настройка Windows-сервера для совместной работы по протоколу CIFS

Настройка и организация ресурса стандартна и реализуется через “Общий доступ к файлам и папкам”. Важно не забыть указать права доступа к общему ресурсу и файлам. Если авторизация проходит через AD, необходимо установить параметр “Network Microsoft Server: Digitally sign communications (always) - Disable” в групповой политике.

Оригинальная документация от Microsoft


Настройка Linux/Samba-сервера для совместной работы по протоколу CIFS

Никаких особенных настроек делать не требуется. Если у вас сервер уже настроен и работает с Windows-клиентами, то он будет работать и с WINE@Etersoft. Рекомендуется, чтобы oplocks были включены.

Настройке Samba посвящено множество статей в Интернете. Вот некоторые из них:

http://www.opennet.ru/docs/RUS/samba_win2000/

http://www.linuxfocus.org/Russian/March2002/article177.shtml

http://www.citforum.ru/operating_systems/linux/samba/

Замечание

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


Настройка Linux-клиентов для совместной работы по протоколу CIFS

Настройка происходит в два этапа: установка специального собранного модуля ядра CIFS и монтирование общего сетевого ресурса.

Подготовка модуля ядра CIFS@Etersoft

Для корректной совместной работы необходимо установить пакет linux-cifs и задействовать модуль CIFS ядра Linux.

Замечание

Если имеются смонтированные по протоколу CIFS сетевые ресурсы, необходимо прежде их размонтировать командой # umount <точка монтирования>

# service linux-cifs restart


Загрузка модуля CIFS

Такой ответ означает, что в данный момент имеются ресурсы смонтированные по протоколу CIFS.

Unloading CIFS kernel module... ERROR: Module cifs is in use [FAILED]

Removing CIFS kernel module... ERROR: Module cifs is in use [FAILED]

Enable Etersoft extensions for CIFS...   [ DONE ]

Disable Linux extensions for CIFS...     [ DONE ]


Просмотреть список смонтированных ресурсов можно командой mount. После успешного размонтирование необходимо еще раз выполнить команду service linux-cifs restart

Unloading CIFS kernel module...          [ DONE ]

Loading CIFS kernel module... cifs from Etersoft is not found, 

you can try compile it with 'service linux-cifs build' command.  [FAILED]


В состав пакета linux-cifs входит ряд прекомпилированных модулей для разных ядер Вашего дистрибутива. Если команда service linux-cifs restart завершилась ответом, показанным выше (обычно это происходит из-за несовпадения версии ядра), то необходимо собрать модуль CIFS для Вашего ядра командой service linux-cifs build. Для этой операции Вам потребуется компилятор GCC и заголовочные файлы ядра. Если заголовочные файлы отсутствуют, Вам будет предложено название пакета, который надо установить.

# service linux-cifs build


Ответ такого вида означает отсутствие заголовочных файлов ядра, необходимых для сборки модуля CIFS@Etersoft для Вашего ядра.

Build for 2.6.18-ovz-smp-alt12 Linux kernel (headers in /lib/modules/2.6.18-ovz-smp-alt12/build)

Error: no kernel headers found at /lib/modules/2.6.18-ovz-smp-alt12/build

Please install package

        kernel-headers-modules-XXXX for ALT Linux

        kernel-devel-XXXX for FCx / ASP Linux

        kernel-source-stripped-XXXX for Mandriva 2007

        linux-headers for Debian / Ubuntu

        kernel-source-XXXX for SuSe

        kernel-source-XXXX for Slackware / MOPSLinux

or use KERNSRC variable to set correct location

Exiting...


После установки необходимого пакета с заголовочными файлами, выполните команду service linux-cifs build еще раз.

Build for 2.6.18-std-smp-alt6 Linux kernel (headers in /lib/modules/2.6.18-std-smp-alt6/build)

We in ALT Linux, use GCC 4.1

make: Entering directory `/usr/src/linux-2.6.18-std-smp-alt6'

  CLEAN   /usr/src/linux-cifs/.tmp_versions

make: Leaving directory `/usr/src/linux-2.6.18-std-smp-alt6'

make: Entering directory `/usr/src/linux-2.6.18-std-smp-alt6'

  CC [M]  /usr/src/linux-cifs/sess.o

...

  LD [M]  /usr/src/linux-cifs/cifs.o

  Building modules, stage 2.

  MODPOST

  CC      /usr/src/linux-cifs/cifs.mod.o

  LD [M]  /usr/src/linux-cifs/cifs.ko

make: Leaving directory `/usr/src/linux-2.6.18-std-smp-alt6'

Copying built module to /lib/modules/linux-cifs


Если присутствует строчка Copying built module to /lib/modules/linux-cifs, значит, что сборка завершилась успешно, и можно смело загружать модуль командой service linux-cifs restart. В итоге должно быть следующее:  
Unloading CIFS kernel module...            [ DONE ]

Removing CIFS kernel module...             [ DONE ]

Enable Etersoft extensions for CIFS...     [ DONE ]

Disable Linux extensions for CIFS...       [ DONE ]


При вызове build можно указать путь к заголовочным файлам ядра для сборки: KRNSRC=/usr/src/путь service linux-cifs build.


Монтирование сетевого ресурса

Сетевой ресурс можно монтировать либо для каждого пользователя персонально (тогда права доступа будут определяться сервером), либо для всех сразу- при условии что пользователи на локальной машине входят в одну группу, указанную при монтировании (доступ к ресурсу станет определяться местными настройками), а также без контроля прав. Примеры монтирования приведены ниже.

Для монтирования удалённого CIFS-ресурса необходимо с правами пользователя root выполнить команду:

# mount -t cifs //<сервер>/<ресурс> <локальный каталог> -o user=<workgroup/user>,pass=<passwd>,file_mode=0660,dir_mode=2770,uid=<user>,gid=<group>,iocharset=utf8


file_mode=0660 определяет необходимые права на запись/чтение файлов пользователю и указанной группе. dir_mode=2770 определяет необходимые права на запись/чтение каталогов пользователю и указанной группе. iocharset=utf8 определяет кодировку отображаемых имен файлов и каталогов. Если монтировать с параметром noperm, то система будет игнорировать права доступа к файлам. Если разграничение доступа к базе не очень важно, это наиболее удобный вариант для совместной работы разных терминальных пользователей с базой.
# mount -t cifs //<сервер>/<ресурс> <локальный каталог> -o noperm,user=<workgroup/user>,pass=<passwd>


Монтирование с параметром credentials=<имя файла> позволяет считывать дополнительные параметры монтирования из указанного файла. Если user и passwd не указываются, тогда авторизация на сервере производится от имени пользователя guest. Если не указан пароль, система спросит его в любом случае.

Если в частном случае (работает только для linux-cifs 1.50 и выше) требуется отключить LinuxExtensions, укажите при монтировании параметр nounix. Это нужно для обеспечения совместной работы с ресурсом Windows- и Wine- клиентов.

После этого следует создать новый виртуальный диск-каталог в /.wine/dosdevices, который будет указывать на локальный каталог, куда смонтирована файловая система. Некоторые программы требуют доступности именно в виде сетевого ресурса, для них потребуется создать ссылку:

$ mkdir -p ~/.wine/unc/servername

$ ln -s <локальный каталог> ~/.wine/unc/servername/sharename


В результате данный ресурс будет доступен win-приложениям через UNC-путь //servername/sharename.

Для автоматизации монтирования можно использовать модуль pam_mount.