FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。
一般在各种linux的发行版中,默认带有的ftp软件是vsftp,从各个linux发行版对vsftp的认可可以看出,vsftp应该是一款不错的ftp软件。
1、检查安装vsftpd软件 使用如下命令#rpm -qa |grep vsftpd可以检测出是否安装了vsftpd软件, 如果没有安装,使用yum命令进行安装。
# sudo yum install vsftpd -y安装vsftp
2、启动服务 使用vsftpd软件,主要包括如下几个命令:
启动ftp命令#sudo service vsftpd start
停止ftp命令#sudo service vsftpd stop
这里如果遇到报错,估计是使用的是Centos7或者 Fedora高版本。启用服务变化了:
Redirecting to /bin/systemctl start vsftpd.service
执行命令使用:
/bin/systemctl start vsftpd.service
重启ftp命令#sudo service vsftpd restart
查看是否启动成功命令: sudo netstat -tunlp
现在就是改配置文件,首先你要关闭ftp,去禁用匿名登录
使用 vim /etc/vsftpd/vsftpd.conf 打开配置文件
anonymous_enable=NO #禁止匿名
local_enable=YES #允许本地登录
write_enable=YES #允许写,如需上传,则必须
llocal_umask=027#将上传文件的权限设置为:777-local_umask
anon_upload_enable=YES #允许虚拟用户和匿名用户上传
anon_other_write_enable=YES #允许虚拟用户和匿名用户修改文件名和删除文件
dirmessage_enable=YES
xferlog_enable=YES #打开日志记录
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log #日志存放位置
xferlog_std_format=YES #标准日志格式
idle_session_timeout=600 #空闲连接超时
data_connection_timeout=120ftpd_banner=Welcome to ChinaRise FTP service #欢迎信息
chroot_local_user=NO
chroot_list_enable=YES
#以上两行将虚拟用户限制在其目录下,不能访问其他目录,或者直接用
listen=yes #监听/被动模式
listen_port=21#监听端口
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list #虚拟用户名单保存在文件/etc/vsftpd/vsftpd.chroot_list 中
user_config_dir=/etc/vsftpd/vsftpd_user_conf #每个虚拟用户名的更加详细的培植保存在/etc/vsftpd/vsftpd_user_conf 中
使用命令查看更改生效的配置为文件: cat /etc/vsftpd/vsftpd.conf |grep ^[^#]
这里要注意不能有多余空格否则启动不了
改完配置文件,不要忘记重启vsFTPd服务器。
# /etc/init.d/vsftpd restart
创建帐号:
# useradd -d /home/test test //增加用户test,并制定test用户的主目录为/home/test
修改密码:
# passwd test //为test设置密码
FileZilla下载连接ftp进行连接
安装ftp: sudo yum install ftp
进入ftp: ftp
重要之处记得改文件:
chmod 777 home/
chmod 777 home/ec2-user/
上面这两个命令慎用,因为改了文件夹权限,所以你要想明白,你的密钥就有可能不能用了(如下链接):
http://blog.51cto.com/h2appy/1112797
就特别指出你的密钥生效不能用:
所以用密钥登录每条指令都慎用,一条你不知道的指令有可能给你服务器照成无法弥补的错误。
1. 500 OOPS: could not read chroot() list file:/etc/vsftpd/vsftpd.chroot_list:
解决方法::是因为没有这个文件。在/etc/下面新建一个vsftpd.chroot_list
当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。___已实验证明。
2. 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
解决方法:
#vi /etc/vsftpd.conf (或者是在/etc/vsftpd/vsftpd.conf,总之知道自己服务器的配置文件)
添加 allow_writeable_chroot=YES
还少一个重要的配置:
1,指定登录到的根目录
local_root=/home/ftp (那他就登录到这个目录,权限就跟就是这个目录的权限)
2.如果要删除用户,用下面代码:
#在root用户下:
userdel -r newuser
#在普通用户下:
sudo userdel -r newuse
####指导qq:179061434
####求求你尽情蹂躏我吧:
![image.png](https://upload-images.jianshu.io/upload_images/5949949-604671c69b8a85e6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)