我希望将远程数据源在本地挂载为 fuse 文件系统。以下系统支持此功能lsvfs
:
lsvfs
Filesystem Num Refs Flags
-------------------------------- ---------- ----- ---------------
devfs 0x00000071 4 synthetic, jail
cd9660 0x000000bd 0 read-only
procfs 0x00000002 4 synthetic, jail
nfs 0x0000003a 0 network
zfs 0x000000de 17 jail, delegated-administration
msdosfs 0x00000032 0
ufs 0x00000035 0
fdescfs 0x00000059 4 synthetic, jail
fusefs 0x000000ed 0 synthetic, jail
nullfs 0x00000029 3 loopback, jail
tmpfs 0x00000087 0 jail
我已经安装fusefs-sshfs
在jail中了。我还创建了挂载点目录。
在主机中/etc/sysctl.conf
我有security.jail.enforce_statfs=1
;并且在/etc/rc.conf
我有kld_list="fuse"
(我认为这是多余的,但仍然存在)。
在 (ez)jail 配置中我允许allow.mount
、allow.mount.nullfs
和allow.mount.fusefs
。
在监狱里,我可以建立到远程数据源的 sftp 链接并将目录更改为 OUT:
sftp -o IdentityFile=/var/data/theheart/.ssh/xxx_rsa_id [email protected]
Connected to [email protected].
sftp> dir
OUT bin dev etc lib usr
但我无法将该数据源挂载为 fuse ssh 文件系统:
/usr/local/bin/sshfs -C -o uid=16701 -o gid=16701 -o reconnect -o IdentityFile=/var/data/theheart/.ssh/xxx_rsa_id [email protected]:OUT /var/spool/xxx/pick_up
mount_fusefs: /dev/fuse on /var/spool/xxx/pick_up: Operation not permitted
fuse: failed to mount file system: No error: 0
这可能吗?Jail(8) 手册页暗示它存在该allow.mount.fusefs
设置。如果是这样,那么我遗漏了哪些步骤?