我有多个目录分布在多个Ubuntu 10.04服务器的文件系统上。
要求是允许less数人通过ftp访问这些目录中的一部分。
例如joe需要将文件ftp到/ apps / app1。 爱丽丝需要ftp到/ apps / app2和/ mnt / apps / app4(nfs共享到另一台服务器)
我真的想保持vsftpd chroot,以便这些用户除了主目录之外什么也看不到。
所有这些用户都是ldap用户。 他们的主目录从中央服务器自动安装。
所以,理想情况下,当joe ftp进入时,他应该看到一个名为“app1”的目录。 当爱丽丝ftps中,她应该看到名为“app2”和“app4”的目录。 最后,我需要添加更多的“虚拟”dirs。 例如,爱丽斯可能需要在几周内访问/ apps / app5。 我希望能够添加它,以便当她ftp的时候,她看到“app2”,“app4”和“app5”。
这似乎应该很容易,但我一直在围绕如何让这个工作。
选项1
我已经尝试使用fstab和/或autofs挂载用户主目录下的–bind。 这种有用的。 很烦人的是,当你使用autofs的时候,除非有人最近访问过这些目录,否则这些目录是不可见的。
为什么选项1失败:
与scheme3相同的原因
scheme2
我试过使用软链接,但是,这似乎并没有工作。 我在/ mnt / apps / app1上创build了一个nfs挂载驱动器(使用autofs)。 然后我创build一个像这样ln -s / mnt / apps / app1 / home / ldap / joe / app1的链接。
为什么选项2失败:
当我以joe的身份login到ftp时,可以看到“app1”目录,但是如果我尝试打开它,则得到:550无法打开文件。 错误:关键文件传输错误。 请注意,/ home / ldap / joe是一个自动挂载的驱动器,它位于/ apps / exports / home / joe下的不同服务器上。 我读过一些其他地方,一旦用户被chrooted,他们不能遵循他们的家庭目录之外的符号链接。
OPTION3
configuration所有用户,使其具有相同的主目录,然后在共同的主目录下安装共享目录。 如果你使用autofs,那么dir名字不会在什么时候出现。 如果我使用fstab,这是非常接近可行的解决scheme。
为什么OPTION3失败:我可以很好地安装本地dir。 但是,当我尝试mount --bind <some mapped drive> /apps/app1 ,然后当我ftp和浏览目录,我看到一个500 Failed to change directory 。
任何人都有这个问题的优雅的解决scheme? 也许有另一个支持“虚拟目录”的FTP服务器?
你有什么问题与符号链接? 我做了很多次
你需要做一些脚本来自动创buildsym链接,但这不应该太难。