
我正在嘗試從我的 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
我見過其他一些人也遇到過這個問題,但我見過的唯一解決方案是 chmod 整個磁碟 777,我寧願避免這樣做。不幸的是,我無法在我的系統上使用 nfs-user-server,因此我無法使用 UID/GID 映射。
答案1
不要將所有檔案指派給 uid 1000,而是將所有檔案指派給 Mac 上的 uid(id -u
在終端機中執行以查看您的 uid)。當您執行此操作時,對 gid ( id -g
) 執行相同的操作。
答案2
這就是我在 MacOS 11.1 BigSur(nfs 用戶端)上的工作,在 VirtualBox VM 中運行 Ubuntu 20.04,使用「僅主機」網路直接連接到虛擬機器。據推測,這可以在兩台物理機器之間運行。
*** 請注意,虛擬機器沒有啟用防火牆,因為它是在我的 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 是 ubuntu 虛擬機器上的「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
在 Mac(客戶端)端無需insecure
在伺服器端匯出。
UID/GID 1000 是伺服器上的「don」用戶,從 mac 用戶端可以看出: 在 Mac 用戶端上建立的範例文字文件
它在伺服器上的樣子: 透過 ssh 進入 ubuntu 虛擬機器查看 /home/don
答案3
一種解決方案:在兩個平台上建立一個具有相同群組id的群組,並使兩個平台上的使用者都成為該群組的成員,然後將anongid參數更改為該群組id。