1.檢測是否安裝vsftpd:
rpm -q vsftpd
//利用rpm(redhat package manerge)軟件測試是否存在vsftpd
2.如果沒有vsftpd,install vsftpd
yum install -y vsftpd
//yum是基於rpm的軟件管理軟件
3.編輯vsftpd配置文件:
vi /etc/vsftpd/vsftpd.conf
#-------begin---------
anonymous_enable=NO
#關閉匿名登錄
chroot_local_user=YES
#用於指定用戶列表文件中的用戶是否允許切換到上級目錄。默認值爲NO。
#通過搭配能實現以下幾種效果:
#①當chroot_list_enable=YES,chroot_local_user=YES時,在/etc/vsftpd.chroot_list文件中列出的用戶,可以切換到其他目錄;未在文件中列出的用戶,不能切換到其他目錄。
#②當chroot_list_enable=YES,chroot_local_user=NO時,在/etc/vsftpd.chroot_list文件中列出的用戶,不能切換到其他目錄;未在文件中列出的用戶,可以切換到其他目錄。
#③當chroot_list_enable=NO,chroot_local_user=YES時,所有的用戶均不能切換到其他目錄。
#④當chroot_list_enable=NO,chroot_local_user=NO時,所有的用戶均可以切換到其他目錄。
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
#加上這行解決了無法登陸的問題
#--------end---------
4.設置開機啓動:
chkconfig vsftpd on
5.重新啓動ftp
systemctl start vsftpd.service
systemctl restart vsftpd.service
6.防火牆配置:
(1)
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
#newline
(2)關閉防火牆:
[root@localhost modules]# systemctl stop firewalld.service #停止
[root@localhost modules]# systemctl disable firewalld.service #禁用
7.配置賬戶:
useradd -d /path(你的ftp文件夾) -s /sbin/nologin ftpname(用戶名)
passwd ftpname
chown -R ftpname.ftpname /path(你的ftp路徑)
chmod 777 /path
8.設置路徑上運行:
setsebool -P ftp_home_dir on
setsebool allow_ftpd_full_access on
#----ps:-------
這裏可能會出現一個錯誤:
error1: SELinux is disabled
解決方案:
vi /etc/selinux/config
更改爲:SELINUX=1
必須重啓linux,不重啓是沒辦法立刻開啓selinux的
1 命令查看出selinux的狀態
sestatus -v
2 臨時關閉 selinux
setenforce 0
3 永久關閉selinux
vi /etc/sysconfig/selinux
把裏邊的一行改爲
SELINUX=disabled
setenforce 1 設置SELinux 成爲enforcing模式
setenforce 0 設置SELinux 成爲permissive模式
如果要徹底禁用SELinux 需要在/etc/sysconfig/selinux中設置參數selinux=0
error2: boolean xxx is not defined
原因是:CentOS7開始用 tftp_home_dir 來代替了 ftp_home_dir (查看/etc/vsftpd/vsftpd.conf)
修改如下:
setsebool -P tftp_home_dir on
9.重啓vsftpd:
systemctl restart vsftpd.service