我正在嘗試為我的家庭網路建立一些 NFS 共享,以便我可以更輕鬆地管理我的 NAS。我目前在家裡使用 Samba,但 NFS 對我來說速度更快,因為我使用 Ubuntu(除了 NAS 之外,其他人都運行 Windows)。
我想要做的是創建一些 NFS 共享,這些共享對除了我的機器之外的所有人都是唯讀的。我的NFS 共享工作正常,因為我可以將它們安裝在我的電腦上並瀏覽資料夾,但我被迫對它們進行唯讀操作,這很令人沮喪,因為我在配置/匯出中聲明了我的機器可讀/寫。
我的 /etc/exports 檔案如下所示(例如一行 - 有幾行具有相同的結果):
/mnt/TVShows matt-pc.*(rw,sync,no_root_squash,no_subtree_check) 192.168.1.0/25(ro,sync,no_root_squash,no_subtree_check)
matt-pc.1 和 matt-pc.2 皆在 NAS 的主機檔案中定義。但無論如何,硬編碼 IP 也不起作用。
這也不起作用:
/mnt/TVShows matt-pc.*(rw,sync,no_root_squash,no_subtree_check) *(ro,sync,no_root_squash,no_subtree_check)
我仍然只能只讀掛載。
驅動器以讀取/寫入方式安裝在 NAS 上,並且我的 Samba 共用設定正常運作(我可以強制以我的使用者帳戶登入 NAS 上,並且能夠讀取和寫入檔案)。
如果我像這樣格式化共享:
/mnt/TVShows matt-pc.*(rw,sync,no_root_squash,no_subtree_check)
當嘗試安裝在客戶端電腦(我的電腦)上時,我只是收到權限錯誤。
這就是我在客戶端電腦上安裝的方式:
nas.local:/mnt/TVShows /mnt/NFS/TVShows nfs auto,noatime,nolock,bg,nfsvers=4,intr,tcp,actimeo=1800 0 0
我可以做這個嗎?
答案1
/mnt/TVShows
要匯出到所有其他rw
,你可以在`/etc/exports 中編寫:nas
matt-pc
ro
#
/mnt/TVShows matt-pc(rw,no_subtree_check) 192.168.1.0/24(ro)
請注意,順序很重要。匯出到一台機器時會使用第一個符合的機器名稱/IP/網絡,因此首先是最特定的機器,最後是最通用的機器。不要以賦予太多權利的包羅萬象結束。
另請記住,每組選項都是下一組選項所固有的,因此您只需先具體說明即可。其餘的只是之前設定的變化。也要避免你不需要的既定意見。 (並始終閱讀相關的man
(1) 頁和文件/usr/share/doc/"package name"/
)
也要檢查您使用的名稱是如何正確解析的。要使用它,請使用getent
(1) 命令。像這樣:
$ getent hosts matt-pc
它的工作原理取決於 和resolv.conf
(/etc/hosts
或實際上是 的內容/etc/nsswitch.conf
)。
若要在每台機器上安裝,請執行以下操作:
/etc/fstab
# ro, that is this line in all but matt-pc
nas.local:/mnt/TVShows /mnt/NFS/TVShows nfs auto,ro,noatime,nolock,bg,nfsvers=4,intr,tcp 0 0
# rw, that is this line in only matt-pc
nas:/mnt/TVShows /mnt/NFS/TVShows nfs auto,rw,noatime,nfsvers=4,tcp 0 0
但請注意,不要使用超出您實際需要的參數。
(是的,我更喜歡將伺服器上的磁碟安裝在 下/srv/
,因為這是用於伺服器資源的,並且/mnt/
更多用於臨時安裝。我通常有/srv/web/
,等等/srv/files/music/
。/srv/files/video
它掩蓋了更容易進行備份)