- Вопрос или проблема
- Ответ или решение
- 1. Проверка настроек NFS на сервере
- Разрешения на уровне NFS
- Установки для пользователей
- 2. Установки прав доступа на стороне сервера
- Права на директории
- 3. Настройка клиента Ubuntu
- Монтирование с использованием параметров
- UID и GID
- 4. Логи и диагностика
- Просмотр системных логов
- 5. Тестирование и отладка
- Заключение
Вопрос или проблема
У меня есть Windows 2012R2 и NFS сервер, а на клиентской стороне установлен Ubuntu 18, настроенный согласно этой ссылке.
Они находятся в одной сети. В качестве пользователя root я могу правильно смонтировать NFS в Linux. Но как обычный пользователь я получаю сообщение «доступ запрещён». Даже если я пытаюсь записать файл в ранее смонтированный каталог NFS, я тоже получаю сообщение «доступ запрещён».
Если я создаю файл как root в точке монтирования NFS, я также не могу его прочитать из Windows из-за отсутствия разрешений (думаю, это нормальное поведение).
В Windows я настроил разрешения Open для всех компьютеров на NFS. А у моего обычного пользователя в Ubuntu нет доступа root. Какую конфигурацию я упустил?
Решение, предложенное в этом ответе, не сработало, так как я проверил все параметры общего доступа к NFS.
Я столкнулся с этой проблемой, когда делился папкой на жёстком диске. Когда я сначала смонтировал папку с жёсткого диска локально, а затем поделился смонтированной папкой, это сработало. Я подробно ответил на это здесь.
Ответ или решение
Проблема с ошибкой «permission denied» при монтировании NFS-директории на клиенте Ubuntu, связанная с доступом обычного пользователя, может быть вызвана рядом факторов, касающихся конфигурации сервера NFS и настроек прав доступа. Давайте подробно рассмотрим возможные причины и пути решения данной проблемы.
1. Проверка настроек NFS на сервере
Разрешения на уровне NFS
Важно убедиться, что вы правильно настроили экспортируемые директории на сервере NFS (Windows 2012R2). Вам необходимо убедиться, что файл экспортов (обычно exports
для NFS) настроен с правильными разрешениями. Пример строки в файле экспортов может выглядеть так:
/path/to/nfs_share *(rw,sync,no_subtree_check,no_root_squash)
Здесь:
*
обозначает, что доступ открыт для всех клиентов.rw
указывает на возможность записи.no_root_squash
позволяет пользователям с правами root иметь права root на клиенте.
Если вы ограничили доступ каким-либо конкретным IP-адресам, убедитесь, что IP-адрес вашего Ubuntu-клиента включен.
Установки для пользователей
На сервере возможно использование настроек, ограничивающих доступ определенным пользователям или группам. Убедитесь, что у регулярного пользователя есть необходимые права доступа к директориям, которые вы хотите монтировать.
2. Установки прав доступа на стороне сервера
Права на директории
Проверьте права доступа на уровне файловой системы Windows:
- Убедитесь, что у назначенной директории, используемой для NFS, есть права доступа для выполнения операций чтения/записи для всех пользователей.
- Проверьте, чтобы в свойствах папки (вкладка «Безопасность») разрешения были выставлены на «Чтение и запись» для групп, которые могут использовать NFS.
3. Настройка клиента Ubuntu
Монтирование с использованием параметров
При монтировании NFS на клиенте Ubuntu добавление параметров, таких как nolock
, vers=3
или другие, может влиять на поведение. Используйте следующую команду для монтирования:
mount -t nfs -o rw,nosuid,noexec,nolock <NFS_SERVER>:<NFS_SHARE> /mnt/nfs
UID и GID
Ubuntu использует UID (идентификатор пользователя) и GID (идентификатор группы) для проверки прав доступа. Убедитесь, что UID и GID пользователя на Ubuntu совпадают с теми, которые используются на сервере NFS. Это можно сделать с помощью команды:
id username
Если у UID и GID нет соответствия, вам может потребоваться изменить их путем создания соответствующего пользователя или редактирования прав доступа на сервере.
4. Логи и диагностика
Просмотр системных логов
Посмотрите на логи как на сервере, так и на клиенте, чтобы получить более подробную информацию об ошибках. На сервере NFS это может быть Event Viewer
, а на клиенте Ubuntu используйте:
dmesg | grep nfs
5. Тестирование и отладка
Попробуйте воспользоваться утилитами для отладки, например, showmount
для проверки доступных монтирований:
showmount -e <NFS_SERVER>
Если ни один из вышеперечисленных шагов не помог, можно рассмотреть возможность монтирования с использованием другого клиента или, возможно, перезагрузки NFS-сервера и клиента после внесения изменений.
Заключение
Ошибки с доступом при монтировании NFS могут быть вызваны множеством факторов. Внимательное следование рекомендациям по проверке конфигурации, правам доступа и настройкам пользователей зачастую может помочь устранить проблему. Не забывайте о возможности обращения к специализированной документации или сообществу в случае возникновения трудностей.