centos7搭建ftpd伺服器
阿新 • • 發佈:2018-12-20
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