一上午時間擺弄伺服器的ftp問題,增加了使用者之後,ftp登陸還是被拒絕,從頭開始記錄如下:
環境centOS7 ,防火牆是iptables
以管理員運行:yum install vsftpd#安裝ftp chkconfig vsftpd on#設定開機啟動
service vsftpd start #啟動ftp服務
yum -y install ftp #安裝組件,
ftp localhost #測試登陸,輸入使用者名稱ftp,密碼隨便(因為預設是允許匿名的)登入成功,就代表ftp服務可用了。但是,外網是訪問不了的,所以還要繼續配置。
vim /etc/sysconfig/iptables #找到一行22 -j ACCEPT 把它複製一行到下面,把連接埠號碼22改成21,儲存退出
service iptables restart #重啟防火牆
vim /etc/vsftpd/vsftpd.conf #去掉兩行注釋 #chroot_list_enable=YES 和 #chroot_list_file=/etc/vsftpd.chroot_list 的#號 service vsftpd restart #重啟ftp服務
useradd -d /www aaa #建立使用者aaa,並指定/www為訪問目錄
passwd aaa #給使用者aaa設定密碼 usermod -d /www/app aaa #修改aaa的主目錄為/www/app
最後,這裡還是登入被拒絕,vim /etc/vsftpd/user_list 開啟這裡看一下,每個使用者名稱獨佔一行,這是禁止登入列表,把aaa去掉就OK了。。
再然後,新買了個阿里伺服器,centos7.2,安裝最新的vsftpd後再次遇到500不能登入的問題,最終解決是在: vim /etc/vsftpd/vsftpd.conf 設定檔中增加一行
allow_writeable_chroot=YES
如果還是不行,但關閉防火牆之後可以登入ftp,尋就是iptables需要添加模組
1.添加ip_conntrack_ftp 模組
[root@hexuweb101 ~] vi /etc/sysconfig/iptables-config
添加下面一行
IPTABLES_MODULES="ip_conntrack_ftp"
以下是解釋:
從2.3.5之後,vsftpd增強了安全檢查,如果使用者被限定在了其主目錄下,則該使用者的主目錄不能再具有寫入權限了。如果檢查發現還有寫入權限,就會報該錯誤。
要修複這個錯誤,可以用命令chmod a-w /home/user去除使用者主目錄的寫入權限,注意把目錄替換成你自己的。或者你可以在vsftpd的設定檔中增加下列兩項中的一項: