1、查看linux中用的是Ubuntu还是centos
lsb_release -a(Ubuntu)
cat /etc/redhat-release (centos)
2、查看是否已经安装了vsftpd
vsftpd -version
3、安装vsftpd(Ubuntu)
//sudo apt-get install vsftpd
apt-get install vsftpd
安装vsftpd(centos)
yum install vsftpd
4、Ubuntu新建目录:
mkdir /opt/ftp
赋予目录权限,不然不能上传
chmod 777 /opt/ftp
5、创建新用户
ftpname为你为该ftp创建的用户名,/opt/ftp 为登录进去后的位置
sudo useradd -d /opt/ftp -s /bin/bash ftpname
6、为新建的用户设置密码
passwd ftpname
【备注:用cat etc/passwd可以查看当前系统用户】
7、设置主目录(更改登录时看到的目录,看个人需要更改)
usermod -d /ftp ftpname
8、添加用户组(这步可忽略)
sudo groupadd ftpgroup
9、开启防火墙(有时候需要开启)
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables-save
10、编辑开启只能访问自身目录(/opt/ftp),不能访问其他路径
修改/etc/vsftpd.conf
sudo vi /etc/vsftpd.conf
修改如下:
chroot_list_enable=YES //限制访问自身目录
# (default follows)
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
然后修改/etc/vsftpd/vsftpd.chroot_list(这个不是特定的位置,具体看chroot_list_file的路径)
sudo vi /etc/vsftpd.chroot_list
将用户添加进去,保存(一个用户为一行),比如:
ftpname
ftpadmin
11、修改为不能匿名访问:
sudo vi /etc/vsftpd.conf
将对应的内容修改为:
anonymous_enable=NO #禁止匿名访问
local_enable=YES
write_enable =YES
12、查看是否启动
service vsftpd status
如果未启动则启动vSftpd
sudo service vsftpd start
如果已经启动,在修改完上述文件之后需要重启vsftpd:
(1)直接执行vsftpd来启动FTP服务
/etc/init.d/vsftpd restart
(2)使用kill关闭,再重新启动(此方法适用于重新启动不生效的情况)使用如下:
ps -ef|grep ftp
找到对应的,kill+进程号,重新启动vsftpd:
service vsftpd start
如果完成以上步骤,已经可以访问,那么恭喜你了,无需看第13步。
13、修改不能用浏览器访问问题(此时防火墙已经开启,但是使用浏览器访问一直弹出验证框,且用户密码均正确):
sudo vi /etc/vsftpd.conf
将对应的内容修改为:
chroot_local_user=YES
保存,重启vsftpd