Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Next Previous Contents

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