Цель работы: познакомиться с базовыми командами Linux, научиться настраивать сетевое файловое хранилище NFS.
NFS (Network File System) — сетевой протокол уровня приложений, который позволяет одному компьютеру (клиенту) получать доступ к файлам на другом компьютере (сервере) так, как будто это локальная файловая система.
/etc/exports./mnt/nfs_share).Обычно используются пакеты:
nfs-utils(или аналог в дистрибутиве) — сервер и клиентские утилиты NFS.nfs-server— основной сервис NFS.Основной конфигурационный файл сервера NFS:
/etc/exports
Формат записи (упрощённо):
<каталог> <клиент>(опции) <клиент2>(опции) ...
Примеры:
/srv/nfs/share 192.168.1.0/24(rw,sync)
/srv/nfs/share *(ro,sync)
Где:
rw— разрешение чтения и записи;ro— только чтение;sync— синхронная запись (безопаснее, но чуть медленнее);no_root_squash— не понижать привилегии root‑пользователя с клиента (опасная опция, по умолчанию лучше не использовать на учебном этапе без понимания последствий);all_squash/anonuid,anongid— сопоставление всех пользователей анонимному (для более жёсткого контроля).192.168.56.0/24или сеть VirtualBox/VMware NAT/Host‑Only).rootили черезsudo.В примерах далее:
IP сервера:192.168.56.10
IP клиента:192.168.56.11
При необходимости подставьте свои IP‑адреса.
На серверной машине откройте терминал и получите права суперпользователя:
su -
Обновите список пакетов и установите необходимые утилиты NFS:
apt-get update
apt-get install nfs-server -y
Создайте директорию, которую будете экспортировать по NFS, например:
mkdir -p /srv/nfs/share
Назначьте владельца и права доступа (для простоты — доступ всем чтение/запись; в реальных системах делайте более жёсткие настройки):
chmod 777 /srv/nfs/share
Важно:
chmod 777— это максимально открытые права, удобно для учебной лабораторной работы.
Создайте тестовый файл на стороне сервера:
echo "Файл создан на NFS-сервере" > /srv/nfs/share/test_from_server.txt
Откройте файл /etc/exports в текстовом редакторе (например, nano или vim):
vim /etc/exports
Добавьте строку экспорта. Пример для сети 192.168.56.0/24:
/srv/nfs/share 192.168.56.0/24(rw,sync)
/srv/nfs/share— каталог, который экспортируется.192.168.56.0/24— клиенты из этой подсети имеют доступ.rw— доступ на чтение и запись.sync— синхронная запись.Сохраните файл и выйдите из редактора.
Примените настройки экспорта:
exportfs -ra
Проверить, что экспорт применился:
exportfs -v
Включите необходимые
systemctl enable --now nfs-server
Убедитесь, что сервисы запущены:
systemctl status nfs-server
Состояние должно быть active (running).
С сервера вы можете проверить, какие каталоги экспортируются и кому:
exportfs -v
Перейдите на виртуальную машину‑клиент.
Получите права суперпользователя:
su -
Установите клиентские утилиты NFS (обычно тот же пакет nfs-utils):
apt-get update
apt-get install nfs-clients -y
Проверьте, какие ресурсы экспортирует сервер (подставьте IP сервера):
showmount -e 192.168.56.10
Ожидаемый вывод:
Export list for 192.168.56.10:
/srv/nfs/share 192.168.56.0/24
Чтобы NFS‑ресурс подключался автоматически при загрузке системы клиента, используйте /etc/fstab.
На клиенте откройте /etc/fstab:
vim /etc/fstab
Добавьте строку (укажите свой IP сервера и путь):
192.168.56.10:/srv/nfs/share /mnt/nfs_share nfs defaults 0 0
Проверьте корректность записи (без перезагрузки):
umount /mnt/nfs_share
mount -a
Если ошибок нет — ресурс снова должен быть смонтирован:
mount | grep /mnt/nfs_share
Посмотрите содержимое смонтированного каталога:
ls -l /mnt/nfs_share
Вы должны увидеть файл test_from_server.txt, созданный на сервере.
Прочитайте его содержимое:
cat /mnt/nfs_share/test_from_server.txt
Создайте новый файл уже на клиенте (в смонтированном каталоге):
echo "Файл создан на NFS-клиенте" > /mnt/nfs_share/test_from_client.txt
Перейдите на сервер и убедитесь, что этот файл появился там:
ls -l /srv/nfs/share
cat /srv/nfs/share/test_from_client.txt
Если файлы видны с обеих сторон — базовая работа NFS настроена правильно.
/etc/exportsвида:/srv/nfs/share 192.168.56.0/24(rw,sync)— объясните каждый элемент.rwотroв настройке NFS?