Назад | Перейти на главную страницу

Проблема с общим доступом к файлам NFS в NAS

Мы купили новый сервер H-NAS и работает нормально. Мы выделили 500 ГБ пространства для наших репозиториев Subversion и создали общий ресурс nfs.

Когда я создаю новый каталог, владелец и группа отображаются как nobody nogroup как показано ниже.

drwxr-xr-x 2 nobody nogroup 2048 2013-07-03 19:09 test

Я создал репозиторий svn на общей папке nfs, когда я попытался изменить пользователя и группу, он сказал, что операция не разрешена. Это связано с монтированием общего ресурса nfs.

Я выполнил команду mount 10.9.17.59:/subversion /subversion чтобы смонтировать общий ресурс nfs. он был установлен правильно.

когда я выполнил chown -R www-data:www-data REPO-NAME означает, что операция запрещена.

Подскажите, пожалуйста, в чем могут быть проблемы. Пожалуйста, помогите мне решить эту проблему.

NFS (до версии 4) просто доверяет UID и GID, которые клиент объявляет для любого конкретного действия (создание файла, чтение файла и т. Д.). Это имеет очевидный недостаток: злонамеренный клиент может лгать о UID и GID. Если он лжет и говорит: «У меня UID 0», то сервер предполагает, что у него есть доступ ко всем файлам экспорта. Это плохо ™.

Для борьбы с проблемой есть настройка: root_squash. Этот параметр означает: «Если вы говорите, что UID 0, я предполагаю, что вы имели в виду UID none». Клиенты все еще могут лгать, но они не могут быть root. Это хорошо, но имеет ряд недостатков:

  • Вы не можете копировать файлы через NFS (так как это может делать только root)
  • Вы не можете создавать файлы или каталоги, принадлежащие root.

По сути, ваш лучший и единственный вариант для создания файлов и каталогов, принадлежащих root, в общей папке NFS - это войти на сервер и создать их локально. Для всех остальных операций используйте учетные записи без полномочий root.

У вас может возникнуть соблазн отключить эту защиту с помощью no_root_squash, но это было бы Плохо ™. Чтобы увидеть, насколько легко злоумышленнику украсть или удалить все ваши файлы, вы можете использовать NFSpy. По крайней мере, прочтите README, чтобы получить представление о последствиях для безопасности различных опций.