
Я пытаюсь подключиться к общему диску NFS из моего Debian Squeeze box с моего ноутбука OSX 10.6, и как я ни старался, я не могу заставить его разрешить мне записывать на диск с Mac. У меня есть следующее в /etc/exports:
/mnt/usbdrive 192.168.1.0/24(rw,insecure,sync,no_subtree_check,all_squash,anonuid=1000,anongid=1000)
делая все запросы исходящими от UID/GID 1000/1000, моего пользователя, который владеет всем диском. Однако, когда я монтирую диск на Mac, все также принадлежит 1000/1000, поэтому я никогда не смогу записать на диск:
~> ls -la /Volumes/USBDrive/
drwxr-xr-x 6 1000 1000 4096 5 Sep 19:31 .
drwxrwxrwt@ 4 root admin 170 6 Sep 22:41 ..
drwx------ 2 1000 1000 16384 28 Aug 21:24 lost+found
drwxr-xr-x 2 1000 1000 4096 29 Aug 15:35 music
Я видел, что у нескольких людей была такая проблема, но единственное решение, которое я видел, это chmod всего диска 777, чего я бы предпочел избежать. К сожалению, я не могу использовать nfs-user-server в своей системе, поэтому я не могу использовать сопоставление UID/GID.
решение1
Вместо того, чтобы назначать всем файлам uid 1000, назначьте всем файлам ваш uid на Mac (запустите id -u
в терминале, чтобы увидеть ваш uid). Пока вы этим занимаетесь, сделайте то же самое для gid ( id -g
).
решение2
Это то, что сработало для меня на MacOS 11.1 BigSur (nfs-клиент), запущенном на Ubuntu 20.04 внутри VirtualBox VM, с использованием сети «только для хоста» для прямого подключения к виртуальной машине. Предположительно, это будет работать между двумя физическими машинами.
*** обратите внимание, что у виртуальной машины не включен брандмауэр, поскольку это виртуальная машина только для хоста, работающая внутри моего Mac. Очевидно, что для этого вам нужно открыть порты на брандмауэре на сервере.
Macbook (клиент) — 192.168.56.1 Ubuntu VM (сервер) — 192.168.56.11
Редактировать /etc/exports
на сервере:
/home/don 192.168.56.1(rw,sync,no_subtree_check,anonuid=1000,anongid=1000,all_squash)
*** не забудьте запустить exportfs -a
после редактирования /etc/exports
файла, прежде чем запускать mount
на клиенте Mac.
** id 1000 и gid 1000 — это пользователь «don» на виртуальной машине Ubuntu
На Mac:
sudo mount -o resvport,rw -t nfs 192.168.56.11:/home/don /Users/don/ubuntudevnfs
и
sudo umount -t nfs /Users/don/ubuntudevnfs
resvport
на стороне Mac (клиента) отпадает необходимость в insecure
экспорте на стороне сервера.
UID/GID 1000 — это пользователь «don» на сервере, как видно из клиента Mac: пример текстового файла, созданного на клиентском терминале Mac
Как это выглядит на сервере: просмотр /home/don через ssh в виртуальной машине ubuntu
решение3
Одно из решений: создать группу с одинаковым идентификатором группы на обеих платформах и сделать пользователя на обеих платформах ее членом, а затем изменить параметр anongid на этот идентификатор группы.