
내 OSX 10.6 랩톱의 Debian Squeeze 상자에서 공유된 NFS 드라이브에 연결하려고 하는데, 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
나는 이 문제를 겪는 다른 몇몇 사람들을 보았지만 내가 본 유일한 해결책은 전체 디스크 777을 chmod하는 것이었습니다. 나는 이것을 피하고 싶습니다. 불행히도 내 시스템에서는 nfs-user-server를 사용할 수 없으므로 UID/GID 매핑을 사용할 수 없습니다.
답변1
모든 파일을 uid 1000에 할당하는 대신 Mac의 uid에 모든 파일을 할당하십시오( id -u
uid를 보려면 터미널에서 실행). 그 동안 gid( id -g
)에 대해서도 동일한 작업을 수행합니다.
답변2
이것은 VM에 직접 연결하기 위해 '호스트 전용' 네트워크를 사용하여 VirtualBox VM 내에서 Ubuntu 20.04를 실행하는 MacOS 11.1 BigSur(nfs 클라이언트)에서 저에게 효과적이었습니다. 아마도 이것은 두 개의 물리적 시스템 사이에서 작동할 것입니다.
*** VM은 내 Mac 내에서 실행되는 호스트 전용 VM이기 때문에 방화벽이 활성화되어 있지 않습니다. 분명히 이를 위해서는 일반적으로 서버의 방화벽에서 포트를 열어야 합니다.
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)
*** Mac 클라이언트에서 실행하기 전에 파일을 exportfs -a
편집한 후 실행하는 것을 잊지 마세요./etc/exports
mount
** ID 1000 및 gid 1000은 우분투 VM의 'don' 사용자입니다.
맥에서:
sudo mount -o resvport,rw -t nfs 192.168.56.11:/home/don /Users/don/ubuntudevnfs
그리고
sudo umount -t nfs /Users/don/ubuntudevnfs
resvport
insecure
Mac(클라이언트) 측에서는 서버 측 내보내기 가 필요하지 않습니다 .
UID/GID 1000은 Mac 클라이언트에서 볼 수 있듯이 서버의 'don' 사용자입니다. Mac 클라이언트 터미널에서 생성된 샘플 텍스트 파일
서버에서 어떻게 보이는지: SSH를 통해 우분투 VM으로 /home/don 보기
답변3
한 가지 해결 방법: 두 플랫폼 모두에서 동일한 그룹 ID를 가진 그룹을 만들고 두 플랫폼의 사용자를 해당 그룹의 구성원으로 만든 다음 anongid 매개변수를 이 그룹 ID로 변경합니다.