Ubuntu环境FTP服务器vsftpd安装及配置方法

 

首先,假设你已经在Ubuntu上安装好了LAMP环境,实现了Apache多用户的虚拟主机设置。那么现在,你就应该考虑用户资料的上传问题了,一般这些用户都会选择用ftp上传的方式来管理自己的web内容,这就需要我们再为他们开设FTP服务。最简便的方法就是使用Ubuntu自带的FTP服务器是vsftpd。

一、安装vsftpd

Ubuntu安装软件倒不是件困难的事,输入:

apt-get install vsftpd

如果提示没找到vsftp软件包,

修改 gedit /etc/apt/sources.list  或vi /etc/apt/sources.list, 在最后加入
deb http://ftp.us.debian.org/debian stable main contrib non-free 
deb http://ftp.us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://ftp.us.debian.org/debian testing main contrib non-free
deb http://ftp.us.debian.org/debian-non-US testing/non-US main contrib non-free 
deb http://ftp.us.debian.org/debian unstable main contrib non-free
deb http://ftp.us.debian.org/debian-non-US unstable/non-US main contrib non-free
最后执行 apt-get update 更新软件库

 

安装了之后会在/home/下建立一个ftp目录。这时候你可以试着访问下ftp://IP地址。应该可以看到一个空白内容的ftp空间。

默认设置下匿名用户可以下载,但不能写入或是上传

二、设置 vsftpd.conf文件

现在我们要让匿名用户无法访问,并且得输入linux上的用户密码后才能访问到他们自己目录里的内容。

首先找到设置vsftpd的文件,位置在/etc/vsftpd.conf,修改之前最好先备份下这个文件:

cp /etc/vsftpd.conf /etc/vsftpd.conf.old

然后可以改动了,下面是一些vsftpd设置参数说明:

#不让匿名用户使用

#anonymous_enable=YES

#本地用户可用

local_enable=YES

#可用写操作

write_enable=YES

#不需要显示某目录下文件信息

#dirmessage_enable=YES

#加点banner提示

ftpd_banner=Hello~~

#FTP服务器最大承载用户

max_clients=100

接下来,你会遇到两个问题:

1、输入用户名密码后显示的位置是在用户的根目录下,而我们的WEB内容是在public_html目录里。

2、用户可以跳到任何其他目录,造成了不利的文件共享局面。

要解决这两个问题,我们还是继续修改vsftpd.conf文件对vsftpd进行设置:

#启动chroot列表(Change root)

chroot_list_enable=YES

#指定列表位置(我这用的是默认地址)

chroot_list_file=/etc/vsftpd.chroot_list

接下来我们得在vsftpd.chroot_list上写进去我们要限制哪些用户,不让他们“漂移”。在有用户redbots,所以只要sudo nano一下,往里面写就行了。

这样我们已经解决第2个问题了,登陆的用户只能在它的用户文件夹里活动,下面我们要更狠一点,让他只能在public_html里活动。依然还是修改vsftpd.conf文件。

#这句默认设置里是没有的,自己加。

user_config_dir=/etc/自己定义一个设置个别用户用的文件夹地址

根据自己设置的地址,建立一个相应的文件夹,然后往里面建立和用户名相同的文件,nano一下:

#本地用户的根地址,假设用户是redbots。

local_root=/home/redbots/public_html

最后,重启下vsftpd服务,就可以看到效果了,命令如下:

    /etc/init.d/vsftpd restart

 

你可能感兴趣的:(LINUX)