Next Previous Contents

9. Настройка вашей Linux-машины как клиента NCP

Если вы пользователь сети со смешанной технологией, которая включает протоколы IP и IPX, возможно что иногда вам захочется иметь на вашей linux-системе доступ к данным, хранимым на файловом сервере Novell в вашей сети. Novell предлагает пакет NFS сервера для своих серверов, который позволит вам организовать доступ, но если у вас маленький сервер или вы имеете маленькое количество людей, заинтересованных в доступе, может быть трудно оправдать цену коммерческого пакета.

Volker Lendecke <lendecke@namu01.gwdg.de> написал модуль ядра Linux для файловой системы, которая поддерживает подмножество Novell NCP, которая позволит вам монтировать тома Novell в файловую систему Linux без других дополнительных продуктов для вашего файлового сервера. Volker назвал пакет ncpfs и получил необходимую информацию в основном из книги "Netzwerkprogrammierung in C" Manfred Hill и Ralf Zessin (дополнительные детали о книге находятся в файле README в пакете ncpfs).

Это программное обеспечение заставляет Linux эмулировать обычную рабочую станцию Novell для файловых сервисов. Оно также включает маленькую утилиту печати, которая позволит вам печатать в очереди печати Novell (это документировано позже в разделе Клиент Печати). Пакет ncpfs будет работать с файловыми серверами Novell версий 3.x и поздних, он не будет работать с Novell 2.x. Клиент ncpfs также будет работать с Novell-совместимыми продуктами, но к сожалению некоторые продукты, объявленные как совместимые не являются достаточно совместимыми. Для использования ncpfs с файловыми серверами Novell 4.x, файловый сервер должен работать в режиме эмуляции bindery. Поддержка NDS является недвним добавлением к пакету ncpfs и находится в ранней стадии разработки и дополнительно к этому может быть запрещено использовать этот пакет в вашей стране, из-за использования патентованной технологии.

9.1 Где взять ncpfs.

Последние версии пакета ncpfs были спроектированы, чтобы компилироваться с ядром 1.2.13 или ядрами позже 1.3.71 (это включает 2.x.x). Если вы не используете ядро ни в одной из этих категорий, тогда вам необходимо обновить ядро. Kernel-HOWTO в деталях описывает как сделать это.

Вы можете получить пакет ncpfs pпо анонимному ftp с сервера Volker по адресу: ftp.gwdg.de или sunsite.unc.edu или других серверов-зеркал. Текущая версия на время написания была: ncpfs-2.0.11.tgz или ncpfs-2.2.0.tgz, которая добавила поддержку NDS.

9.2 Построение ncpfs для ядра 1.2.13.

Скомпилируйте ядро с поддержкой Ethernet и IPX

Первое, что вам необходимо сделать -- убедиться что ваше ядро построено с разрешенной поддержкой IPX. В ядре версии 1.2.13 вам необходимо убедиться, что вы ответили Y на вопрос: 'The IPX protocol' как показано:

 ...
 ...
Assume subnets are local (CONFIG_INET_SNARL) [y] 
Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n] 
The IPX protocol (CONFIG_IPX) [n] y
*
* SCSI support
 ...
 ...

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

Вы можете продолжать компиляцию вашего ядра. Помните, что необходимо запустить программу lilo для инсталляции ядра, после завершения компиляции.

Разархивируйте программное обеспечение ncpfs

# cd /usr/src
# tar xvfz ncpfs-2.0.11.tgz
# cd ncpfs

Проверьте Makefile

Если вы намереваетесь использовать kerneld для автозагрузки модуля ядра ncpfs, тогда вы должны раскомментировать строку в Makefile, которая ссылается на: KERNELD. Если вы не уверены, что знаете что это означает вы должны прочитать Kernel-HOWTO, чтобы ознакомить себя с настройкой модулей ядра.

Скомпилируйте пакет ncpfs

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

# make

Скопируйте утилиты IPX куда-нибудь, если их у вас еще нет

После того как команда make выполнится вы должны найти все необходимые утилиты в директории ncpfs/bin. Вы можете использовать:

# make install

чтобы установить утилиты в выбранные Volker'ом директории. Если вы работаете на системе использующей формат ELF, то вам необходимо перезапустить `ldconfig -v' чтобы убедиться, что разделяемые библиотеки можно найти.

Скопируйте модуль ncpfs.o куда необходимо

Если вы компилировали для ядра 1.2.*, то вы найдете файл названный ncpfs.o в директории ncpfs/bin после выполнения make. Это модуль ядра ncpfs. Вы должны скопировать его куда необходимо. На моей системе debian я скопировал его в директорию /lib/modules/1.2.13/fs и добавил ncpfs в файл /etc/modules, так что он будет автоматически загружен во время загрузки системы. Если вы используете другой дистрибутив Linux, то вы должны найти место где хранятся модули ядра и скопировать скомпилированный модуль туда, или просто скопировать модуль в вашу директорию /etc. Для загрузки модуля вручную вам необходимо выполнить команду:

# insmod ncpfs.o

9.3 Построение ncpfs для ядер 1.3.71++/2.0.*.

Для последних версий ncpfs вы должны использовать ядро 1.3.71 или более новое, это включает и ядра 2.0.*.

Если вы намереваетесь использовать ядро версии 1.3.71 или более новое, тогда исходный код ncpfs для ядра уже включен в стандартный дистрибутив ядра. Вы должны только ответить Y на:

Networking options  -->
    ...
    ...
    <*> The IPX protocol
    ...
Filesystems  -->
    ...
    ...
    <*> NCP filesystem support (to mount NetWare volumes)
    ...

Вам все равно необходимо следовать инструкциям по компиляции для ядер 1.2.*, так как вам нужно скомпилировать утилиты, но там не будет файла модуля ядра.

9.4 Настройка и использование ncpfs.

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

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

# ipx_configure --auto_interface=on --auto_primary=on

Это должно быть разумным в большинстве случаев, но если это у вас не работает, тогда прочитайте выше раздел 'Утилиты IPX' для настройки вашего программного обеспечения вручную. Однако были замечены проблемы при использовании этой команды в сети с клиентами под Windows 95.

Проверка конфигурации

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

# slist

Если комманда slist выдает сообщение подобное: ncp_connect: Invalid argument, тогда скорее всего ваше ядро не имеет поддержки IPX. Проверьте что вы действительно загрузили соответствующее ядро. При загрузке вы должны видеть сообщения о 'IPX' и 'ncpfs' в сообщениях системы. Если комманда slist не показывает список серверов, тогда вам необходимо использовать метод ручной настройки сети.

Монтирование сервера или тома Novell(tm)

Если ваше сетевое программное обеспечение IPX работает нормально, то вы можете сейчас смонтировать том файлового сервера Novell в файловую систему Linux. Комманда ncpmount используется для этих целей и требует, чтобы вы задали по крайней мере следующую информацию:

  1. Имя файлового сервера
  2. Идентификатор входа файлового сервера. Если для него требуется пароль, то он также необходим вам
  3. Точка монтирования, т.е. куда вы хотите примонтировать том. Это должна быть существующая директория на вашей машине.
  4. (по необходимости) директория на файловом сервере, которую надо смонтировать.

Существует эквивалентная комманда ncpumount для размонтирования смонтированных файловых систем NCP. Файловые системы NCP будут отмонтироваться нормально, если ваша машине будет выключаться корректно, так что вам нет необходимости беспокоиться о размонтировании файловых систем вручную с помощью команды ncpumount до выполнения команды halt или shutdown.

Пример команды для монтирования файлового сервера ACCT_FS01, с идентификационным именем guest без пароля, в директорию /mnt/Accounts должен выглядеть подобным образом:

# ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n

Заметим, что использование опции -n указывает. что для входа в систему пароль не требуется. Та же самая процедура с указанием пароля secret должна выглядеть так:

# ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -P secret

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

Проверка монтирования

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

Так как NCP не обеспечивает значения uid или gid владельцев фалов, все файлы будут иметь разрешения и владельца присвоенных значениям точки монтирования, учтите это при при разделении смонтированного тома между пользователями Linux.

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

Если вы имеете нужду в постоянно смонтированных томах ncp, тогда вы захотите настроить вышеприведенные команды в ваши rc-файлы, так что все будет выполняться автоматически во время загрузки. Если ваш дистрибутив не обеспечивает некоторый способ настройки IPX, как в debian, тогда я рекомендую поместить эти команды в ваш файл /etc/rc.local, если он у вас есть. Вы можете использовать что-то подобное:

#
# Start the ncp filesystem
/sbin/insmod /lib/modules/1.2.13/fs/ncpfs.o

# configure the IPX network
ipx_configure --auto_interface=on --auto_primary=on

# guest login to the Accounting fileserver
ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n

#

Существует другой способ настройки монтирований NCP -- это делается путем создания файла $HOME/.nwclient. Этот файл содержит детальную информацию о временных или специфических для пользователя монтирований томов NCP, которые будут выполняться регулярно. Это позволит вам хранить информацию о монтировании, так что вы можете делать их заново не указывая все параметры при каждом монтировании.

Формат этого файла довольно простой:

# Первая запись - запись 'сервера по умолчанию' и она используется
# когда вы не указываете сервер явно.
#
# Пользователь TERRY входит на файловый сервер DOCS_FS01 с паролем 'password'
DOCS_FS01/TERRY password
#
# Гостевой вход на файловый сервер ACCT_FS01 без пароля
ACCT_FS01/GUEST -

Для активизации этих монтирований вы можете использовать

$ ncpmount /home/terry/docs

для монтирования: DOCS_FS01 с идентификатором TERRY в директорию /home/terry/docs. Заметим, что эта запись была выбрана потому что сервер не был указан в команде монтирования. Если будет использоваться следующая команда:

$ ncpmount -S ACCT_FS01 /home/terry/docs

тогда том для пользователя GUEST на сервере ACCT_FS01 должен будет быть смонтирован.

Замечание: чтобы этот механизм работал, вам необходимо чтобы разрешение на файл $HOME/.nwclient было равно 0600, так что вы для этого должны использовать команду:

$ chmod 0600 $HOME/.nwclient

Если пользователям не являющимися администратором разрешено использовать этот механизм, тогда команда ncpmount должна быть с установленным Set Userid Root, так что вы должны дать этой команде такое разрешение:

# chmod 4755 ncpmount

Попробуйте утилиту nsend

утилита для посылки сообщений пользователям Novell также включена в этот пакет, она называется nsend и используется как показано:

# nsend rod hello there

должна послать сообщение "hello there" пользователю вошедшему под именем "rod" на ваш "основной" файловый сервер (первая запись в вашем файле .nwclient. Вы можете указать другой файловый сервер, используя тот же самый синтаксис как для команды ncpmount.


Next Previous Contents