Если вы пользователь сети со смешанной технологией, которая включает протоколы 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 и находится в ранней стадии разработки и дополнительно к этому может быть запрещено использовать этот пакет в вашей стране, из-за использования патентованной технологии.
Последние версии пакета 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.
Первое, что вам необходимо сделать -- убедиться
что ваше ядро построено с разрешенной поддержкой 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 для инсталляции ядра, после завершения компиляции.
# cd /usr/src # tar xvfz ncpfs-2.0.11.tgz # cd ncpfs
Если вы намереваетесь использовать
kerneld для автозагрузки модуля ядра ncpfs, тогда вы
должны раскомментировать строку в Makefile
, которая
ссылается на: KERNELD
. Если вы не уверены, что знаете что
это означает вы должны прочитать
Kernel-HOWTO, чтобы ознакомить себя с настройкой
модулей ядра.
Программное обеспечение должно быть скомпилировано просто без всякой дополнительной настройки:
# make
После того как команда make выполнится вы
должны найти все необходимые утилиты в директории
ncpfs/bin
. Вы можете использовать:
# make install
чтобы установить утилиты в выбранные Volker'ом
директории. Если вы работаете на системе использующей формат
ELF, то вам необходимо перезапустить `ldconfig -v'
чтобы
убедиться, что разделяемые библиотеки можно найти.
Если вы компилировали для ядра 1.2.*
, то вы найдете файл
названный ncpfs.o
в директории ncpfs/bin
после
выполнения make. Это модуль ядра ncpfs. Вы
должны скопировать его куда необходимо. На моей системе
debian я скопировал его в директорию
/lib/modules/1.2.13/fs
и добавил ncpfs
в файл
/etc/modules
, так что он будет автоматически загружен
во время загрузки системы. Если вы используете другой
дистрибутив Linux, то вы должны найти место где хранятся модули
ядра и скопировать скомпилированный модуль туда, или просто
скопировать модуль в вашу директорию /etc
. Для
загрузки модуля вручную вам необходимо выполнить команду:
# insmod ncpfs.o
Для последних версий 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.*
, так как вам нужно скомпилировать утилиты, но там
не будет файла модуля ядра.
Существует два способа настройки сетевого программного обеспечения 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 не показывает список
серверов, тогда вам необходимо использовать метод ручной
настройки сети.
Если ваше сетевое программное обеспечение IPX работает нормально, то вы можете сейчас смонтировать том файлового сервера Novell в файловую систему Linux. Комманда ncpmount используется для этих целей и требует, чтобы вы задали по крайней мере следующую информацию:
Существует эквивалентная комманда 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
утилита для посылки сообщений пользователям Novell также включена в этот пакет, она называется nsend и используется как показано:
# nsend rod hello there
должна послать сообщение "hello there" пользователю
вошедшему под именем "rod" на ваш "основной" файловый сервер
(первая запись в вашем файле .nwclient
. Вы можете указать
другой файловый сервер, используя тот же самый синтаксис как
для команды ncpmount.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |