一个vsftpd服务器如何工作以及如何configuration?

我被要求configuration一个基于vsftpd软件包的FTP服务器。 服务器运行在有超级用户权限访问的远程机器上。

不熟悉FTP服务器的机制,我试图找出如何configuration用户FTP帐户。 以前的维护人员使用了一个shell脚本,该脚本在我们维护的用于跟踪用户帐户和密码的列表上工作,以configurationftp帐户。 通过阅读脚本,我看到他生成了一个用户名和密码列表,实际上在Linux机器上创build了一个用户帐户。 这意味着对于我们在列表中configuration的每个用户, adduser命令将添加一个新的用户帐户:

 adduser --home /home/ftp --no-create-home $user 

(但没有私人/home/username目录 – 使用/home/ftp instaed)。

这些用户中的每一个都可以使用ssh命令login到他的账户。 这个事实对我来说似乎有些奇怪,因为我认为ftp帐户应该从Ubuntu用户帐户中分离出来。

另一个副作用是,当用户使用Web浏览器连接时,他连接到/home/ftp目录。 但是,他可以使用“ Up to a higher level directory ”链接上去,并有效地访问我们的所有系统。

所以,问题是:

  1. 这实际上是FTP服务器在configurationFTP帐户方面应该如何工作?

  2. 如果没有,我怎么configurationvsftpd服务器的方式,我只有在该机器上的超级用户Ubuntu帐户,所有的FTP帐户是…只是FTP用户帐户? 此外,这些ftp帐户应根据如何以及允许访问的内容进行configuration。

绝对以前的pipe理员没有做好工作。

所以首先,如果你在你的vsftpd.conf文件中添加了以下几行代码,你将会在用户主目录下chroot用户。

 chroot_list_enable=YES chroot_local_user=YES # a list of users which are NOT to be placed in a chroot() jail chroot_list_file=/etc/vsftpd/chroot_list 

对于pipe理用户,你可以创build一个虚拟的(看看这里 ),但如果你认为解决scheme太复杂,只需使用pam_listfile.so模块来拒绝ftp用户的ssh访问或使用pam_shells.so 。 哪一个更容易。 只是要小心,不要阻止SSH服务器有效的用户:)

听起来你需要一个非系统用户的chroot'ed FTP服务器,我认为这个 wiki的howto有你需要的答案。

您应该使用虚拟用户作为FTP用户。

关注此帖: http : //howto.gumph.org/content/setup-virtual-users-and-directories-in-vsftpd/