Отказано в разрешении при монтировании NFS с помощью Webmin (установка Mac OSX + Ubuntu)
-
21-12-2019 - |
Вопрос
Цель
У меня есть следующая настройка -
- Домашний сервер под управлением 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.
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
может записывать / создавать файлы и каталоги;у всех остальных есть разрешения только для чтения.Если вы каким-то образом не синхронизировали идентификаторы пользователей между своими ящиками, у вас вряд ли будут одинаковые идентификаторы пользователей, и поэтому у вас возникнут проблемы с разрешениями.
Поскольку это домашний сервер, самое простое решение, упомянутое выше, - просто избавиться от системы безопасности и разрешить всем и вся доступ к вашим файлам.Конечно, это неприятно по очевидным причинам.
Правильное решение - убедиться, что все идентификаторы пользователей синхронизированы между всеми системами, но это может быть проблемой в домашней среде.Кроме того, изменение идентификаторов пользователей после использования учетной записи является проблематичным;хотя это можно сделать, делать это нужно осторожно, так как вы можете повредить свою систему.Я не собираюсь вдаваться в подробности.
Редактировать:исправлено частичное предложение.