Nfs

NFS v4 導出加密分區。客戶端掛載空目錄

  • June 4, 2017

我的區域網路伺服器上有一個加密硬碟。它是使用 luks/dm-crypt 加密的。伺服器執行 NFS v4 以在區域網路中共享文件。它可以工作,除了加密的 USB 硬碟驅動器。如果客戶端將共享安裝到他的文件系統中,他會找到一個空文件夾,解密文件應該在其中。

這是設置:

伺服器如何掛載luks分區

sudo cryptsetup luksOpen /dev/sdb1 data1
sudo mount /dev/mapper/data1 /exports/user1/data1

在伺服器上解密和安裝驅動器工作正常。如果我去,/exports/user1/data1我會得到解密的文件。

NFS導出

/exports            192.168.178.20(rw,sync,fsid=0,no_subtree_check,root_squash) 192.168.178.21(rw,sync,fsid=0,no_subtree_check,root_squash)
/exports/user1      192.168.178.20(rw,sync,no_subtree_check,root_squash) 192.168.178.21(rw,sync,no_subtree_check,root_squash)

因此,解密的 USB 驅動器直接安裝到 NFS 導出中/exports/user1/data1

這就是客戶端安裝****共享文件夾的方式:

sudo mount.nfs4 192.168.178.10:/ /fs_data -o soft,intr,rsize=32768,wsize=32768

現在,如果客戶端將伺服器導出安裝到他的文件系統中,他會發現“data1”文件夾是空的。

有什麼我想念的嗎?

更新:

感謝 Gilles的出色回答,我得到了它的工作。我試圖避免crossmnt並且nohide不遇到最終的inode問題。這是我現在使用的:

/etc/出口

/exports/user1           192.168.178.20(rw,sync,fsid=0,crossmnt,no_subtree_check)
/exports/user1/data1     192.168.178.20(rw,sync,no_subtree_check)

掛載data1的客戶端命令:

sudo mount.nfs4 192.168.178.10:/data1 /fs_data -o soft,intr,rsize=32768,wsize=32768

對於 Linux 核心 NFS 伺服器,如果您導出目錄樹,則不包括掛載在該樹上的任何文件系統。請參閱手冊頁nohide中的選項說明。exports(5)

您需要明確導出已安裝的文件系統,即您需要在exportsfor中單獨一行/exports/user1/data1。此外,您需要在安裝後(重新)啟動 NFS 伺服器/exports/user1/data1

在客戶端,您需要/fs_data/data1單獨安裝。正如手冊頁中所討論的,您可以通過包含選項 on或選項 onexports來避免這種情況,但這可能會導致麻煩,因為客戶端將在看似相同的文件系統上看到具有相同 inode 編號的文件。例如,這可以導致文件複製或歸檔程序忽略文件,因為它認為它已經備份了它們(如果程序已經看到了 inode 42,它會認為與 inode 42 無關的文件似乎是同一個文件系統——但實際上不是——是同一個文件)。nohide``/exports/users1/data1``crossmnt``/exports/users1``/fs_data/foo``/fs_data/data1/bar

引用自:https://unix.stackexchange.com/questions/259990