Ubuntu中用vsftpd搭建FTP服务器笔记

网上关于使用linux下使用vsftpd搭建FTP的文章非常的多,大部分内容都差不多。还有诸如“我见过最好的vsftpd配置教程”、“史上最详细的vsftpd配置文件讲解”和“vsftpd入门专题”等名字如此大气的文章,可是,不知大家有没有同样的经历,照着文章做下来却很难一次成功,总是会出各种各样的错误。而且,里面讲的有些配置项是在是无法真正理解,比如:chroot_local_user,chroot_list_enable,chroot_list_file的搭配使用,我说vsftpd你就不能设计的简单一些吗,搞的这么晦涩难懂!

这两天就捣鼓这个FTP服务器了,真是头都大了,不过还好最后算是搭起了一个能用的FTP吧。为了以后再用时不在这上面浪费时间,把一些关键点记录下来吧,希望对大家有一点点参考价值。

首先,网上介绍的比较全面的资料有: 

前者确实介绍的很全面,但是有很多内容都是属于高级主题,初级用户真的很难全部看懂。如果使用要求不搞的话,其实后者就挺合适,更适合入门级菜鸟(想我这样的)参考,我就是参考这篇文章来搭建的。另外,还有一篇:  。下面介绍一下我安装配置的步骤:

1、安装vsftpd

这一步就不用将了,直接运行sudo apt-get install vsftpd即可。安装完毕后,默认配置下就可以直接登录fpt://ip了,这里采用的是匿名登录,不需要输入用户名密码。实际上,vsftpd安装完毕后会创建一个ftp的账户,可以通过查看/etc/passwd文件得知,也可以看到ftp账户对应的家目录在/srv/ftp,所以匿名登录后实际上是进入了/srv/ftp中,大家可以在该目录中放入文件测试一下。而且可以测试一下,匿名登录时是否有下载权限、上传权限、删除权限和创建目录权限。

2、准备ftp系统账户

用户ftp是匿名登录时默认的用户,如果我们需要通过用户认证登录ftp的话,可以在配置文件中设置“允许本地用户”模式,即可以通过Ubuntu系统中的账户登录到ftp。所以,这里重新创建一个新的用户专门用来登录ftp。使用下面的命令创建一个新用户ftpuser,-s指定shell(指定的/sbin/nologin实际上是一个无效的shell,也就使得该用户无法从系统登录), -m用于创建家目录(即/home/ftpuser)

useradd vsftpd -s /sbin/nologin -m ftpuser

3、配置文件

关于配置文件(/etc/vsftpd.conf)这里不详细叙述了,参照上面的文章《vsftpd配置教程》进行配置,配置完成后不一定能成功,后面会针对出现的问题来解释配置项。

注意一点,如果开启了日志功能,即:xferlog_enable=YES,则日志文件选项为xferlog_file=/var/log/vsftpd.log,该选项不修改的话,日志文件默认为/var/log/vsftpd.log,《vsftpd配置教程》中强调了一点:确保ftpuser用户对该文件有写入权限,如果对权限不熟悉或者怕麻烦的话,直接给666权限即可,即:chmod 666 /var/log/vsftpd.log。

4、禁止切换到主目录外的其他目录

用ftpuser用户登录到FTP服务器时,默认进入的是/home/ftpuser目录,但是可以通过点击“上一级目录”进入上一级目录、上上一级目录或其他所有目录,这显然是不安全的,需要修改配置禁止该功能。

文章  和  都讲到了解决该问题的办法,而且讲述基本一致。实际上就是配置chroot_local_user、chroot_list_enable和chroot_list_file三个选项,这三个选项相互配合使用,这也是最不好理解最让大家头疼的地方,也是我前面质疑的为何设计的如此晦涩的地方。

第一篇文章说的相对比较清楚,下面总结一下:

首先,chroot_list_enable好理解,就是:是否启用chroot_list_file配置的文件,如果为YES表示chroot_list_file配置的文件是否生效,否则不生效;

第二,chroot_list_file也简单,配置了一个文件路径,默认是/etc/vsftpd.chroot_list,该文件中会填入一些账户名称。但是这些账户的意义不是固定的,是跟配置项chroot_local_user有关的。后一条中说明;

第三,chroot_local_user为YES表示所有用户都*不能*切换到主目录之外其他目录,但是!除了chroot_list_file配置的文件列出的用户。chroot_local_user为NO表示所有用户都*能*切换到主目录之外其他目录,但是!除了chroot_list_file配置的文件列出的用户。也可以理解为,chroot_list_file列出的“例外情况”的用户。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3acb6cd6f7cde78a956520608c1cc8c1.html