1.切換到root用戶
2.查看是否安裝vsftp,我這個是已經安裝的。
[root@localhost vsftpd]# rpm -qa |grep vsftpd vsftpd-3.0.2-11.el7_2.x86_64
3.如果沒有發現,則安裝。
yum install vsftpd* -y
4.啟動vsftpd服務,以及重啟命令(centos7.0以上版本)
[root@localhost vsftpd]# /bin/systemctl start vsftpd.service [root@localhost vsftpd]# /bin/systemctl restart vsftpd.service
低版本試一下這些命令:
/etc/init.d/vsftpd restart
啟動ftp命令 #service vsftpd start 停止ftp命令 #service vsftpd stop 重啟ftp命令 #service vsftpd restart
設置自啟:chkconfig vsftpd on
5.測試一下能否登錄FTP了,先安裝一個ftp客戶端組件。
yum -y install ftp
嘗試登錄一下
ftp localhost
輸入用戶名ftp,密碼隨便(因為默認是允許匿名的)
登錄成功,就代表ftp服務可用了。
但是,外網是訪問不了的,所以還要繼續配置。
6.取消匿名登錄
vi /etc/vsftpd/vsftpd.conf
把第一行的 anonymous_enable=YES ,改為NO
重啟
[root@localhost vsftpd]# /bin/systemctl restart vsftpd.service
7.創建一個組,用於存放ftp用戶
groupadd ftpgroups
8.創建ftp用戶,並加入ftpgroups組,/home/ftp是自己建的目錄,不存在就自己創建一個
useradd -d /home/ftp/ftptest -g ftpgroups ftptest
設置密碼
passwd ftptest
設置不允許用於用戶登錄
usermod -s /sbin/nologin ftptest
可以看到已經建好了
[root@localhost vsftpd]# ls /home/ftp ftpn ftptest
這時候重啟一下vsftpd服務
/bin/systemctl restart vsftpd.service
登錄一下看,可以登錄了,但是發現也能訪問上層目錄,甚至根目錄,這不是我們希望的,修改一下配置文件讓其只能訪問自身目錄
vi /etc/vsftpd/vsftpd.conf
如下設置
chroot_local_user=YES chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd/chroot_list
另外,從2.3.5之后,vsftpd增強了安全檢查,如果用戶被限定在了其主目錄下,則該用戶的主目錄不能再具有寫權限了!如果檢查發現還有寫權限,就會報該錯誤。
要修復這個錯誤,可以用命令chmod a-w /home/user去除用戶主目錄的寫權限,注意把目錄替換成你自己的。或者你可以在vsftpd的配置文件中增加下列項:
allow_writeable_chroot=YES
好了,這樣就只能訪問自身所屬目錄。
如果希望某個用戶可以訪問根目錄,把用戶名加入
/etc/vsftpd/chroot_list
不存在就創建這個文件,一行一個用戶名。
如果還是登陸不了ftp,那很有可能是selinux的問題,這個東西把他關掉就行
vi /etc/selinux/config
SELINUX=enforcing 設置成SELINUX=disabled
重啟一下服務器
reboot
重啟完了別忘了把vsftpd服務打開,默認是自啟的。
如果連接不上,很可能是防火牆阻止了,嘗試關閉防火牆
systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall開機啟動 firewall-cmd --state #查看默認防火牆狀態(關閉后顯示notrunning,開啟后顯示running)
如果出現遠程文件夾無法顯示的情況,請使用主動模式連接,在你的ftp工具上設置。
轉自:http://www.cnblogs.com/mrcln/p/6179673.html
vsftpd.conf文件參數中文解釋請移步: