1. 程式人生 > >centos7搭建ftpd伺服器

centos7搭建ftpd伺服器

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)關閉防火牆:

[[email protected] modules]# systemctl stop firewalld.service      #停止 
[
[email protected]
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

在這裡插入圖片描述