![通过 NFS 共享 encfs 加密的“.directory”](https://linux22.com/image/91144/%E9%80%9A%E8%BF%87%20NFS%20%E5%85%B1%E4%BA%AB%20encfs%20%E5%8A%A0%E5%AF%86%E7%9A%84%E2%80%9C.directory%E2%80%9D.png)
encfs 使用 FUSE 将加密目录(按照惯例是隐藏的“.directory”)挂载到用户指定的另一个目录上。
我想通过 NFS 共享加密的“.directory”,它将在客户端上解密(按需)。
当我尝试这样做时,安装命令成功并且没有报告错误(即使使用“-vvv”参数)。然而,客户端上的挂载始终为空。为什么?我该如何解决这个问题?
我的计划是客户端不必始终挂载解密的目录,从而提高安全性(我希望)。
另一种共享方式是在 NFS 服务器上解密,这意味着它必须始终保持解密状态(据我所知)。
更新:我想澄清一下,我没有将解密的目录安装在 NFS 服务器上,然后尝试共享该目录。我正在尝试共享原始加密目录。
NFS服务器(192.168.1.1 文件服务器)
/etc/fstab:
/home/.shared /export/home/.shared none bind 0 0
/etc/导出:
/export/home/.shared 192.168.1.10(fsid=2,rw,no_root_squash,sync,no_subtree_check,nohide)
NFS客户端(192.168.1.10)
我尝试过两种方法:
第一种尝试:
fileserver:/export/home/.shared /home/.shared nfs4 noauto,x-systemd.automount,x-systemd.device-timeout=10,timeo=14,rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,intr,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.10,local_lock=none,addr=192.168.1.1 0 0
我也尝试过:
fileserver:/export/home/.shared /home/.shared nfs4 noauto,_netdev,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,intr 0 0
答案1
存储在加密目录中的数据对于文件系统来说看起来就像普通文件(只是具有奇怪的名称和加密的数据)。因此导出加密的挂载点将正常工作。
因此,在服务器上test1
我们可以创建一个测试目录:
$ cd /home/sweh
$ mkdir encrypted decrypted
$ encfs ~/encrypted ~/decrypted
[...]
$ echo hello > decrypted/foo
$ ls encrypted
C-1Ky9g41JBTIYaBJC7EeiiH
现在我们可以导出它了。 /etc/exports
有:
/home/sweh/encrypted *(rw,no_root_squash,sync,no_subtree_check,nohide)
我们跑去exports -a
出口它。
现在test2
我们可以安装它了:
$ mkdir encrypted decrypted
$ sudo mount test1:/home/sweh/encrypted encrypted
$ ls encrypted
C-1Ky9g41JBTIYaBJC7EeiiH
我们可以encfs
在客户端上使用它:
$ encfs /home/sweh/encrypted /home/sweh/decrypted
EncFS Password:
$ cat decrypted/foo
hello