首先確認下是否安裝了vsftp服務
# rpm -qa | grep vsftpd
如果安裝了,請卸載,然後安裝vsftpd,centos可以使用源安裝,其他版本rpm安裝
#yum -y install vsftpd
開啓自動啓動
# chkconfig vsftpd on
啓動服務
#service vsftpd start
用文本編輯器打開配置文件
去掉chroot_list_enables和chroot_list_file的註釋,開啓用戶名列表功能
useradd -d /usr/share/nginx -g ftp -s /sbin/nologin ftpuser這裏的useradd -d /usr/share/nginx 表示增加用戶並指向目錄/usr/share/nginx,-s /sbin/nologin ftpuser禁止登錄SSH權限 用戶名是ftpuser。
這裏提示useradd:user‘ftpuser’already exists是表示目錄已存在無法新建,並不是無法創建用戶
passwd ftpuser來修改用戶密碼,完成後重啓vsftp服務就可以了。
至此ftp就搭建好了。但是登陸後發現了一個小問題,就是登陸後出現了500錯誤
500 OOPS: cannot change directory
這個錯誤是因爲開啓了selinux,這是一個非常底層的安全機制,對於我們一般來說沒有什麼鳥用,建議關閉。
那麼我們使用一下命令來解決這個問題
setsebool -P ftpd_disable_trans 1
然後重啓vsftpd
service vsftpd restart
註釋:因爲我這裏是關閉了iptables,如果沒有關閉的話,要在防火牆添加規則
-A INPUT -p tcp -m multiport --dport 20,21 -m state --state NEW -j ACCEPT開啓20、21端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT 開啓21主動端口
-A INPUT -p tcp --dport 30000:31000 -j ACCEPT --開啓被動端口