所以,我很确定这是真的,但我还没有找到一个特别详细的独立参考资料来直接回答我的问题。问题是:
如何添加对 chroot 环境之外的资源的访问权限?
我已经使用 OpenSSH 较新的 ChrootDirectory 指令设置了 chroot SFTP。
不幸的是,在我的环境中,我无法直接将 chroot 限制到某些用户资源所在的主目录。因此,我创建了一个单独的 chroot 区域,并链接所需的资源。
我尝试使用符号链接来做到这一点。例如
ln -s /path/to/resource /chroot/dir/resource
但出现了“无法规范化未找到目录”的错误
所以我的解决方案是使用绑定挂载:
mount --bind /path/to/resource /chroot/dir/resource
这有效。
真的,我只是想确认一下符号链接不起作用。如果能提供一个描述此问题的参考链接就更好了。
答案1
确实,您不能使用符号链接。符号链接与根目录 ( /
) 有关,在 chroot 中,它是 chroot 的根目录,而不是您的文件系统根目录。
以下是proftpd 文档页面解释同样的事情。