1.安装vsftpd
apt-get install vsftpd
2.配置用户
以多用户为例,单用户操作方法一样
创建用户ming1,ming2和对应密码,-m创建该用户文件夹,-d指定该用户文件夹
useradd -m -d /home/ming1 -s /bin/bash ming1
passwd ming1
useradd -m -d /home/ming2 -s /bin/bash ming2
passwd ming2
3.配置vsftpd
vim /etc/vsftpd.conf
修改配置:
#禁止匿名访问
anonymous_enable=NO
#接受本地用户
local_enable=YES
#允许上传
write_enable=YES
#允许utf8识别
utf8_filesystem=YES
添加配置:
#防止报500错
seccomp_sandbox=NO
其他配置:
1)若配置全部用户只访问同一目录,比如用户ming1和用户ming2都默认访问/home/ming的目录,则需要添加配置
local_root=/home/ming/
并建立对应的目录给予权限
mkdir /home/ming
chmod -R 777 /home/ming
以上也适用单个用户的配置
2)若每个用户默认只访问自己对应的目录,比如用户ming1只访问/home/ming1目录,用户ming2只访问/home/ming2的目录,则需要删除local_root或在前面加#注释掉即可
4.禁止用户访问上级目录
默认任何用户是可以访问上级目录的,若禁止可以做如下配置
还是编辑vsftpd配置文件
vim /etc/vsftpd.conf
修改配置:
#禁止返回上一级
chroot_local_user=YES
chroot_list_enable=YES
#允许返回上级目录的用户放在/etc/vsftpd.chroot_list中,一行一个用户名,若没有/etc/vsftpd.chroot_list,则需要新建一个,否则登录会报错
chroot_list_file=/etc/vsftpd.chroot_list
将允许访问上级目录的用户名放在/etc/vsftpd.chroot_list中,一行一个用户名,不在该文件中的用户将无法访问上级目录,若没有该文件则需要新建一个,否则登录会报错
5.重启ftp服务器
service vsftpd restart
6.打开浏览器
远程服务器使用ftp:IP地址
本地使用ftp:1270.0.1
输入用户名和密码进入
7.一些报错处理
报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。需要在vsftpd的配置文件vsftpd.conf中增加下列:
allow_writeable_chroot=YES
报错:500 OOPS: cannot change directory
创建用户的时候漏掉-m参数,导致当前登录的用户没有对应目录的权限,在/home/目录下,使用ll命令可以查看文件夹是否在对应用户权限。若报此错误,需要使用“userdel -r 用户名”命令删除用户,重新按照步骤2创建用户