До того, как вы продолжите читать этот документ вам будет необходимо успешно
выполнять операцию telnet между машинами, которые вы будете использовать как
сервер и клиент. Если что-то не работает, вам нужно прочитать NET-3 HOWTO и
правильно настроить работу сети.
До того, как мы сможем сделать что-нибудь нам необходимо настроить сервер
NFS. Если вы являетесь частью сети факультета или университета, то у вас
вероятно есть несколько настроенных серверов NFS. Конечно, если они позволят вам
получить доступ к ним и если вы читаете этот документ чтобы получить доступ к
одному из них, то вам можно не читать это раздел и вы можете просто пропустить
его до раздела Установка клиента NFS
Если вас нужно настроить не-Linux машину как сервер, то вам нужно прочитать
руководство по нужной системе, чтобы определить как разрешить работу сервера NFS
и экспортировать файловую систему через NFS. Описание того, как это сделать на
разных платформах вынесено в отдельный раздел. После того, как вы определили
все, что вам нужно вы можете продолжать чтение следующего раздела этого
документа. Или читайте дальше этот раздел, поскольку для некоторых вещей, о
которых я буду говорить не важно какой тип машины вы используете как сервер.
То, о чем вы читали, потребует от вас настройки нескольких программ.
Portmapper на Linux называется либо portmap либо
rpc.portmap . Справочная страница на моей системе говорит, что это
"Преобразователь номеров портов DARPA в вызовы соответствующих программ RPC".
Это первая дыра в безопасности, которую вы откроете читая этот документ.
Описание того, как закрыть одну из таких дыр находится в разделе по безопасности, который я
советую вам обязательно прочитать.
Запустите portmapper. Он называется либо portmap , либо
rpc.portmap и должен находиться в директории /usr/sbin
(на некоторых машинах он называется rpcbind ). Вы можете запустить
его сейчас вручную, но он должен запускаться при каждом запуске вашей машины,
так что вам необходимо создать/отредактировать rc-скрипты. Содержание ваших
rc-скриптов объясняется более подробно в справочной странице init .
Они обычно находятся в директориях /etc/rc.d ,
/etc/init.d или /etc/rc.d/init.d . Если там есть
скрипт, названный inet , то его мы и будем редактировать. Но то, что
в нем необходимо написать или что необходимо сделать еще, находится вне области
рассмотрения этого документа. Запустите portmap, и проверьте, что он запущен с
помощью команды ps aux . Это сделано? Хорошо.
Следующие программы, которые нам нужно запустить далее -- это mountd и
nfsd. Но сначала мы отредактируем другой файл. Это файл
/etc/exports . Допустим я хочу, чтобы файловая система
/mn/eris/local , которая находится на машине eris была
доступна для машины названной apollon . Тогда я должен поместить в
файл /etc/exports на машине eris следующие строки:
/mn/eris/local apollon(rw)
Вышеприведенные строки дают машине apollon право на чтение/запись в каталог
/mn/eris/local . Вместо rw мы можем сказать
ro , что означает достп только для чтения (если вы ничего не
поместите, то по умолчанию будет доступ только для чтения. Существуют другие
опции, которые вы можете задать здесь, и я позже рассмотрю некоторые из них,
относящиеся к проблеме к безопасности. Они все перечислены в справочной странице
exports , которую вы должны прочитать по крайней мере раз в жизни.
Существуют также лучшие способы, чем перечисление всех машин в файле exports. Вы
например можете использовать сетевые группы, если у вас используется система NIS
(или NYS) (NIS также известен как YP), и всегда использовать шаблоны (wild
cards) доменов и подсетей IP как списки машин, которым разрешено что-то
монтировать. Но вы должны учитывать, кто может получить доступ к серверу
неавторизованным способом, если вы используете такую всеобъемлющую авторизацию.
Замечание: Этот файл exports не имеет такой же синтаксис, который
используют другие системы Unix. В этом документе есть отдельный раздел о
файлах exports других Unix-систем.
Сейчас мы готовы к запуску программ mountd (она также может называться
rpc.mountd ) и nfsd (который может назван rpc.nfsd ).
Обе эти программы читают данные из файла exports.
Если вы отредактировали файл /etc/exports , то вы должны быть
уверены, что nfsd и mountd знают о том, что файл изменен. Традиционный способ
сделать это -- это запустить программу exportfs . Во многих
дистрибутивах Linux программа exportfs отсутствует. Если это так, то вы можете
создать такой скрипт на вашей машине:
#!/bin/sh
killall -HUP /usr/sbin/rpc.mountd
killall -HUP /usr/sbin/rpc.nfsd
echo re-exported file systems
Сохраните его в файле, скажем /usr/sbin/exportfs , и не забудьте
выполнить над ним команду chmod a+rx . Сейчас, после того как, вы
изменили ваш файл exports, вы должны запустить программу exportfs, имея права
администратора.
Теперь вы должны проверить, что mountd и nfsd запущены правильно. Сначала это
делается с помощью команды rpcinfo -p . Вывод программы должен
показать что-то похожее на следующее:
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100005 1 udp 745 mountd
100005 1 tcp 747 mountd
100003 2 udp 2049 nfs
100003 2 tcp 2049 nfs
Как вы видите portmapper анонсировал свои сервисы, и что mountd и nfsd
запущены.
Если вы получили сообщение rpcinfo: can't contact portmapper: RPC:
Remote system error - Connection refused или что-то подобное вместо
этого, то значит portmapper не запущен. Исправьте это. Если вы получили
сообщение No remote programs registered. , то либо portmapper не
хочет говорить с вами, либо что-то не в порядке. Завершите выполнение nfsd,
mountd и portmapper и попытайтесь выполнить заново стартовую последовательность.
После проверки того, что portmapper объявил сервисы, вы также можете
выполнить проверку работы с помощью команды ps. Portmapper будет продолжать
объявлять свои сервисы даже после того как программы расширяющие его возможности
завершили работу. Так что проверка с помощью ps может быть необходимой, если вам
кажется, что что-то не работает.
Конечно вам будет нужно исправить ваши системные rc-файлы для запуска mountd
и nfsd при загрузке. Очень вероятно, что эти скрипты уже существуют на вашей
машине, и вам будет нужно только раскомментировать нужный раздел или
активизировать скрипт на нужном уровне запуска.
Справочные страницы, которые вы должны уже изучить: portmap, mountd, nfsd и
exports.
Если вы сделали все как я сказал, то вы должны были установить все
необходимое для работы сервера NFS.
|