Отказано в разрешении при монтировании NFS с помощью Webmin (установка Mac OSX + Ubuntu)

StackOverflow https://stackoverflow.com//questions/23037893

Вопрос

Цель

У меня есть следующая настройка -

  • Домашний сервер под управлением Ubuntu 13.10
  • Ноутбук под управлением Mac OSX 10.9 (Mavericks)

Я пытаюсь экспортировать каталог домашнего сервера ~/Documents в виде NFS mount, доступ к которому можно получить с моего ноутбука Mac

Настройка Ubuntu

Я использовал Webmin в Ubuntu для создания экспорта в NFS.В интересах простого тестирования доступа на данный момент я разрешил любому имени хоста подключаться с доступом на чтение / запись.

Webmin создал следующую конфигурацию в разделе /etc/exports

/home/jeeves/Documents        (insecure,no_subtree_check,no_root_squash,rw,nohide)

Настройка ноутбука Mac OX 10.9

Я подключил удаленный каталог к локальному каталогу, /private/nfs

sudo mount -t nfs 192.168.1.219:/home/jeeves/Documents /private/nfs 

Все работало нормально, и я вижу "Dcouments", установленные под /private в Finder.

Однако я не могу попасть в этот каталог

jeeves:~ $ cd /private/nfs/
-bash: cd: /private/nfs/: Permission denied

У меня был webmin, установивший разрешения на чтение / запись (rw) и это не фильтрация по каким-либо IP-адресам или именам хостов, так что еще требуется для доступа к этому каталогу?

Заранее спасибо за всю вашу помощь!

Редактировать:

Вот моя настройка Webmin.

enter image description here

Webmin не позволит мне выбрать версию NFS 4, предположительно потому, что у меня установлена только NFS v3, согласно nfsstat

jeeves@HAL:~$ nfsstat
...
Server nfs v3:
null         getattr      setattr      lookup       access       readlink     
25        5% 28        6% 0         0% 126      29% 211      48% 0         0% 
...
Это было полезно?

Решение

Скорее всего, вы столкнулись с проблемой с числовыми идентификаторами пользователя:цифровой идентификатор пользователя в вашей системе Ubuntu не совпадает с цифровым идентификатором пользователя на вашем Mac.С NFS вы обычно должны убедиться, что ваши числовые идентификаторы пользователей каким-то образом сделаны одинаковыми во всех ваших системах.В домашних / персональных системах идентификаторы пользователей, как правило, назначаются бессистемно, без какой-либо синхронизации, что вызывает проблемы с NFS.

Поскольку это домашний сервер, и если вы доверяете всем, кто подключается к вашему серверу NFS, одно из возможных быстрых, простых, грязных, уродливых и запутанных решений - открыть разрешения и разрешить всем и вся читать / записывать / удалять ваши файлы (делать нет очевидно, что это делается в корпоративной среде):

В вашей системе Ubuntu войдите в систему как jeeves (не делайте этого sudo или используйте любую другую учетную запись), откройте окно терминала и выполните команды в заданном порядке:

cd /home/jeeves/Documents
find . -type d -print0 | xargs -0 chmod 777
find . -type f -print0 | xargs -0 chmod a+rw

Однако это предполагает, что NFS настроена так, чтобы разрешать доступ ненадежным пользователям (в webmin для параметра "Относиться к ненадежным пользователям как" установлено значение по умолчанию, и я не уверен, что это такое).

Обратите внимание, что с помощью приведенных выше команд владельцы файлов и каталогов, созданных Mac, будут отображаться как числовые пользователи в Ubuntu (поскольку в системе Ubuntu, скорее всего, не будет пользователей в /etc/passwd соответствующие числовым идентификаторам Mac, Ubuntu просто отобразит необработанные числовые идентификаторы).

Длинный ответ:

Когда вы создали jeeves учетная запись в вашей системе Ubuntu, Ubuntu присвоила ей некоторый числовой идентификатор пользователя.Когда вы создали свою учетную запись пользователя на вашем Mac, Mac присвоил ей числовой идентификатор пользователя, который, вероятно, отличался от номера, присвоенного в системе Ubuntu.Обратите внимание, что имена пользователей (например, "дживс") предназначены для удобства пользователя;ни Ubuntu, ни Mac не используют их внутренне, а вместо этого используют идентификаторы пользователей.NFS использует эти числовые идентификаторы для определения владельца / разрешений (в поле Ubuntu).

  • Если идентификаторы совпадают, используются разрешения "пользователя".

  • Если идентификаторы не совпадают:

    • (Можно использовать "Групповые" разрешения, но это маловероятно, и я не собираюсь это обсуждать.)

    • Используются разрешения "Другие".Обратите внимание, что при создании файлов / каталогов, если идентификатор пользователя (Mac) не найден в поле Ubuntu, вы обычно получаете файлы, которые, как представляется, принадлежат "числовому" владельцу;номер, который вы видите, - это то, что использует Mac, и вы видите номер, потому что этот идентификатор не отображается в Ubuntu /etc/passwd.

IIRC, Ubuntu использует umask 022, что означает, что только владелец /home/jeeves/Documents может записывать / создавать файлы и каталоги;у всех остальных есть разрешения только для чтения.Если вы каким-то образом не синхронизировали идентификаторы пользователей между своими ящиками, у вас вряд ли будут одинаковые идентификаторы пользователей, и поэтому у вас возникнут проблемы с разрешениями.

Поскольку это домашний сервер, самое простое решение, упомянутое выше, - просто избавиться от системы безопасности и разрешить всем и вся доступ к вашим файлам.Конечно, это неприятно по очевидным причинам.

Правильное решение - убедиться, что все идентификаторы пользователей синхронизированы между всеми системами, но это может быть проблемой в домашней среде.Кроме того, изменение идентификаторов пользователей после использования учетной записи является проблематичным;хотя это можно сделать, делать это нужно осторожно, так как вы можете повредить свою систему.Я не собираюсь вдаваться в подробности.

Редактировать:исправлено частичное предложение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top