Библиотека сайта rus-linux.net
3. Установка сервера NFS
3.1 Непременные условия
До того как вы продолжите читать этот документ вам будет необходимо мочь выполнять операцию telnet между машинами, котрые вы будете использовать как сервер и клиент. Если что-то не работает, вам нужно проверить NET-3 HOWTO и правильно настроить работу сети.
3.2 Первый шаг
До того что мы сможем сделать что-нибудь другое нам необходимо настроить сервер NFS. Если вы являетесь частью сети факультета или университета, то у вас вероятно есть несколько настроенных серверов NFS. Конечно если они позволят вам получить доступ к ним и если вы читаете этот документ чтобы получить доступ к одному из них, то вам очевидно не нужно читать это раздел и вы можете просто пропустить его до раздела Установка клиента NFS
Если вас нужно настроить не-Linux машину как сервер, то вам нужно прочитать системные руководство, чтобы определить как разрешить работу сервера NFS и экспортировать файловую систему через NFS. Как сделать это на различных платформах вынесено в отдельный раздел. После того как вы определили все что нужно вы можете продолжать чтение следующего раздела этого HOWTO. Или читайте дальше этот раздел, поскольку для некоторых вещей о которых я буду говорить не важно какой тип машины вы используете как сервер.
То о чем вы читали будет требовать настройки нескольких программ.
3.3 Portmapper
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
.
Это сделано? Хорошо.
3.4 Mountd и nfsd
Следующие программы, которые нам нужно запустить это 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 как root.
Теперь вы должны проверить, что 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 также как и portmapper при загрузке. Очень вероятно, что эти скрипты уже существуют на вашей машине, и вам будет нужно только раскомментировать нужный раздел или активизировать скрипт на нужном уровне запуска.
Справочные страницы, которые вы должны сейчас знать: portmap, mountd, nfsd и exports.
Хорошо, если вы сделали все как я сказал, вы должны установить все для запуска сервера NFS.
Next Previous Contents