因此,我有安装了 vsftpd 的机器 1 和需要挂载远程 ftp 文件夹的机器 2。但是机器 2 还需要访问符号链接,这会导致失败。没有 chroot,因为只允许局域网访问,所以不用担心互联网的安全问题。
在机器 1 上:
- ftp 目录为:/home/ftpu/
- 符号链接已建立:ln -s /mnt/share_hdd /home/ftpu/share_hdd/
在机器 2 上(同一网络):
如果我使用 filezilla 或其他程序连接到 ftp,一切都会顺利进行,我可以访问 share_hdd 文件夹并查看其内容,不用担心。
但是,我使用 curlftpfs 来:
- 挂载 machine1.local/share_hdd /mnt
现在当我浏览 /mnt 时我可以看share_hdd 文件夹。如果我进入 cd 文件夹,我就会进入一个文件夹循环,其中包含另一个 share_hdd 文件夹,该文件夹又包含另一个 share_hdd 文件夹等等。最后,我进入了一个无尽的隧道,例如 /mnt/share_hdd/share_hdd/share_hdd/ 等等。
我做错了什么 ?
(哦,如果你想知道为什么这么麻烦而不通过 samba 共享,那是因为机器 2 是来自运行 linux deploy 的备用 android 手机的 debian chroot,其内核不支持 cifs,而我没有能力构建支持 cifs 的自定义内核)
答案1
好吧,我很傻,我错过了两件事。
我确实使用了 mount --bind 但是:
- 我忘了在 machine1.local/share_hdd/ 末尾加上 /
- 我必须重新挂载机器 2 上的 /mnt,因为我在挂载机器 2 后执行了 mount --bind 选项,这显然是错误的操作顺序