操做系統環境:linux
CentOS Linux release 7.4.1708 (Core)vim
使用yum安裝ftp服務:服務器
yum install -y vsftpdide
添加系統用戶做爲登陸ftp服務器並修改ftp配置文件:測試
[root@localhost ~]# useradd ftp1 -s /sbin/nologin -d /ftp_data && echo "123456"|passwd ftp1 --stdin #添加用戶並設置訪問的ftp目錄
[root@localhost ~]# chown ftp1:ftp1 /ftp_data/
[root@localhost vsftpd]# mv vsftpd.conf vsftpd.conf.bak #備份配置文件
[root@localhost vsftpd]# cat vsftpd.conf.bak |grep -v '^#' > vsftpd.conf
[root@localhost vsftpd]# vim vsftpd.conf #修改禁止虛擬用戶登陸ftp服務器
[root@localhost vsftpd]# systemctl restart vsftpd.service #重啓vsftpd
[root@localhost vsftpd]# systemctl enable vsftpd.service #開啓自動啓動vsftpf
關於vsftpd三種用戶的區分:spa
本地用戶:用戶在FTP服務器擁有帳號,且該帳號爲本地用戶的帳號,能夠經過本身的帳號和口令進行受權登陸,登陸目錄爲本身的home目錄$HOME 操作系統
虛擬用戶:用戶在FTP服務器上擁有帳號,但該帳號只能用於文件傳輸服務。登陸目錄爲某一特定的目錄,一般能夠上傳和下載 rest
匿名用戶:用戶在FTP服務器上沒有帳號,登陸目錄爲/var/ftp日誌
關於配置文件/etc/vsftpd/vsftpd.conf參數說明:code
anonymous_enable=NO # 不容許匿名訪問,禁用匿名登陸 chroot_local_user=YES # 啓用限定用戶在其主目錄下 use_localtime=YES # 使用本地時(自行添加) chroot_list_enable=YES #是否啓動限制用戶的名單 YES爲啓用 NO禁用(包括註釋掉也爲禁用) local_enable=YES # 容許使用本地賬戶進行FTP用戶登陸驗證 allow_writeable_chroot=YES # 若是啓用了限定用戶在其主目錄下須要添加這個配置,解決報錯 500 OOPS: vsftpd: refusing to run with writable root inside chroot() xferlog_enable=YES # 啓用上傳和下載的日誌功能,默認開啓。 local_umask=022 # 設置本地用戶默認文件掩碼022 # FTP上本地的文件權限,默認是077,不過vsftpd安裝後的配置文件裏默認是022
關閉防火牆和selinux:
[root@localhost vsftpd]# setenforce 0 #臨時關閉selinux
[root@localhost vsftpd]# systemctl stop firewalld.service
[root@localhost vsftpd]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #永久關閉
若是不肯意關閉防火牆,須要防火牆添加FTP服務:
[root@localhost vsftpd]# systemctl start firewalld.service [root@localhost vsftpd]# firewall-cmd --permanent --zone=public --add-service=ftp success [root@localhost vsftpd]# firewall-cmd --reload success
客戶端測試能夠正常鏈接服務器併成功上傳文件: