Вопрос или проблема
Я создал общую папку /data01/share на одной из систем Suse Gnu/Linux и также добавил запись для клиентской машины в /etc/exports /data01/share 10.241.200.53(rw,sync,no_root_squash,no_subtree_check). Но при выполнении exportfs -a я получаю следующее:
exportfs: Нет опций для /data01/share 10.241.200.53(rw,sync,no_root_squash,no_subtree_check): рекомендуем (sync) для избежания предупреждения
exportfs: /etc/exports [2]: Ни 'subtree_check', ни 'no_subtree_check' не указаны для экспорта ":/data01/share 10.241.200.53(rw,sync,no_root_squash,no_subtree_check)".
Предполагается поведение по умолчанию ('no_subtree_check').
ПРИМЕЧАНИЕ: это значение по умолчанию изменилось с версии nfs-utils 1.0.x
exportfs: Не удалось получить статус /data01/share 10.241.200.53(rw,sync,no_root_squash,no_subtree_check): Нет такого файла или директории
cat /etc/os-release
NAME="SLES"
VERSION="12-SP3"
VERSION_ID="12.3"
PRETTY_NAME="SUSE Linux Enterprise Server 12 SP3"
ID="sles"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:suse:sles:12:sp3"
systemctl status nfs-server.service
nfs-server.service - NFS-сервер и услуги
Loaded: загружен (/usr/lib/systemd/system/nfs-server.service; отключен; предустановлено: отключено)
Drop-In: /usr/lib/systemd/system/nfs-server.service.d
└─nfsserver.conf
/run/systemd/generator/nfs-server.service.d
└─order-with-mounts.conf
Active: активен (выход) с ср 2019-07-24 02:32:03 EDT; 2ч 34мин назад
Main PID: 2562 (code=выход, статус=0/УСПЕШНО)
Tasks: 0 (лимит: 512)
CGroup: /system.slice/nfs-server.service
Jul 24 02:32:03 OPT001CORE0002 systemd[1]: Запуск NFS-сервера и услуг...
Jul 24 02:32:03 OPT001CORE0002 systemd[1]: NFS-сервер и услуги запущены.
cat /etc/exports
# См. страницу man exports(5) для описания синтаксиса этого файла.
# Этот файл содержит список всех каталогов, которые будут экспортироваться
# другим компьютерам через NFS (Сетевую файловую систему).
# Этот файл используется rpc.nfsd и rpc.mountd. См. их страницы man для деталей
# о том, как сделать изменения в этом файле актуальными.
/data01/share 10.241.200.53(rw,sync,no_root_squash,no_subtree_check)
ls -la /data01/share
total 0
drwxrwxrwx 4 acmuser acmgrp 36 Jul 24 04:18 .
drwxr-xr-x 6 acmuser acmgrp 65 Jul 24 04:16 ..
drwxrwxrwx 3 acmuser acmgrp 18 Jul 24 04:18 support
drwxrwxrwx 5 acmuser acmgrp 45 Jul 24 04:17 upgrade
Просто добавьте опцию subtree_check в /etc/exports следующим образом:
# cat /etc/exports
/views_raw 10.143.3.44(rw,sync,no_root_squash,subtree_check)
Перезапустите службу NFS
# systemctl restart nfs-server
# exportfs -av
Ответ или решение
Для ограничения доступа к NFS-расшариванию для определённых IP-адресов или хостов на SUSE, необходимо правильно настроить файл /etc/exports
и перезапустить службу NFS. Давайте разберёмся с вашей конфигурацией и ошибки, связанные с экспортом.
Шаги для исправления ошибки
-
Проверьте синтаксис файла
/etc/exports
:
Ошибка, которую вы получили, указывает на неправильный формат записи в файле. В вашем случае строка должна выглядеть следующим образом:/data01/share 10.241.200.53(rw,sync,no_root_squash,no_subtree_check)
Обратите внимание, что между путём к директории и IP-адресом не должно быть лишних пробелов.
-
Добавление опции
subtree_check
:
Чтобы избежать предупреждений, рекомендуется включить опциюsubtree_check
. В вашем случае она уже указана, но в последующих строках рекомендуется удалить лишние пробелы и убедиться, что она правильно прописана. -
Перезапустите службу NFS:
После внесения изменений в файл/etc/exports
, вам необходимо перезапустить NFS-службу, чтобы изменения вступили в силу:sudo systemctl restart nfs-server
-
Проверьте статус и экспортированные ресурсы:
После перезапуска услуги, выполните команду для проверки экспортированных ресурсов:sudo exportfs -av
Эта команда покажет все экспортированные директории и проверит, нет ли ошибок.
Ограничение доступа к NFS
Чтобы ограничить доступ к NFS-серверу только для определённых IP-адресов, вам нужно указать каждый IP-адрес или диапазон адресов в файле /etc/exports
. Пример:
/data01/share 10.241.200.53(rw,sync,no_root_squash,no_subtree_check)
Если вы хотите разрешить доступ для нескольких IP-адресов, запись может выглядеть так:
/data01/share 10.241.200.53(rw,sync,no_root_squash,no_subtree_check) 10.241.200.54(rw,sync,no_root_squash,no_subtree_check)
Или использовать CIDR для диапазона адресов:
/data01/share 10.241.200.0/24(rw,sync,no_root_squash,no_subtree_check)
Проверка прав доступа
Убедитесь, что пользователь, под которым осуществляется подключение к NFS, имеет соответствующие права доступа к каталогу.
Вы можете проверить права, выполнив команду:
ls -la /data01/share
Заключение
После того как все указанные изменения были внесены и выполнены, NFS-сервер должен работать без ошибок, а доступ к ресурсу должен быть ограничен по указанным IP-адресам. Убедитесь, что ваш клиент имеет правильные настройки, чтобы обратиться к NFS-серверу, и попробуйте подключиться к нему с клиента. Если возникнут дополнительные проблемы, проверьте логи NFS-сервера для диагностики.