До того, как мы сможем что-нибудь сделать с помощью NFS, необходимо настроить сервер NFS.
Первой из необходимых программ является portmapper
- это
преобразователь номеров портов 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
и затем rpcinfo -p
.
Удаленный доступ к программе portmapper
определяется содержимым
файлов /etc/hosts.allow
и /etc/hosts.deny
. Если rpcinfo -p
не
работает, но portmapper
запущен, то проверьте указанные файлы.
Следующие программы, которые Вам нужно запустить - это 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.
Сейчас Вы готовы к запуску программ 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
\begin{verbatim}
Сохраните его в файле, скажем \verb|/usr/sbin/exportfs|, и не забудьте
выполнить для файла команду \verb|chmod Цa +rx|. Сейчас, после того как
получен файл \verb|exports|, Вы должны запустить программу \verb|exportfs|, имея
права администратора.
Затем Вы должны проверить, запущены ли правильно \verb|mountd| и \verb|nfsd|.
Сначала это делается с помощью команды \verb|rpcinfo -p|. Программа
должна показать что-то похожее на следующее:
\begin{verbatim}
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, RPC_PROG_NOT_REGISTERED
или нечто подобное вместо приведенного выше, то portmapper
не
запустился или что-то записано неверно в файле
/etc/hosts(allow,deny)
- что
запрещает программе portmapper
отвечать. Если
Вы получили сообщение No remote programs registered.
, то либо
portmapper
не может ``общаться'' с вами, либо не в порядке что-то
еще. Завершите выполнение nfsd
, mountd
и portmapper
и попытайтесь выполнить заново стартовую последовательность.
После проверки запуска portmapper
, Вы также можете выполнить
проверку его работы с помощью команды ps
. portmapper
будет
продолжать объявлять свои сервисы открытыми даже после того, как программы
расширяющие его возможности завершили работу. Так что проверка с помощью
ps
может быть необходимой, если Вам кажется, что что-то не
работает. Конечно, дополнительно нужно исправить системные
rc
-файлы для запуска mountd
и nfsd
при загрузке.
Очень вероятно, что эти скрипты уже существуют на машине, и понадобится
только раскомментировать нужные разделы или активизировать их на нужном
уровне запуска.