1.有問題時完全解除安裝vsftpd
sudo apt-get purge vsftpd
2.安裝vsftpd
sudo apt-get update //更新源清單
sudo apt-get install vsftpd //安裝vsftpd
sudo service vsftpd restart //重新開機vsftpd服務
3.建立ftp使用者
sudo mkdir /var/www //建立"/var/www"目錄作為使用者主目錄
sudo useradd -d /var/www -s /bin/bash www //建立使用者www
sudo passwd www //設定修改www使用者的密碼
usermod -d /test test //更改使用者test的主目錄為/test
userdel test //userdel + 使用者 即可删除ftp使用者
4.配置vsftpd.conf
修改配置檔案/etc/vsftpd.conf
local_enable=YES 允許本地使用者作為ftp使用者登入(就是你登陸ubuntu的使用者名和密碼也可以登入,不建議開啟)
write_enable=YES 本地使用者寫的權限
local_umask = 022 本地上傳之後檔案的權限是755,目錄權限是644
向檔案中添加
userlist_deny=NO YES則檔案中的使用者不允許通路FTP,NO才能通路FTP。
userlist_enable=YES 是否啟用配置檔案
userlist_file=/etc/allowed_users 控制使用者通路FTP的檔案,裡面寫着使用者名稱。一個使用者名稱一行。
seccomp_sandbox=NO #注意:該選項不配置可能導緻莫名其妙的530問題
local_root=/home/username
當本地使用者登入時,将被更換到定義的目錄下。預設值為各使用者的家目錄。
建立/etc/allowed_users檔案 可通路使用者名
sudo gedit /etc/ftpusers //不能通路使用者
5.啟動停止重新開機服務
sudo /etc/init.d/vsftpd start
sudo /etc/init.d/vsftpd stop
sudo /etc/init.d/vsftpd restart
6.其他配置
方法1.
chroot_local_user=YES //把使用者限定在自己的目錄裡
方法2.
chroot_local_user=YES
chroot_list_enable=YES
/etc/vsftpd/chroot_list //不被限的使用者
解釋:chroot_local_user=YES将所有使用者限定在主目錄内,chroot_list_enable=YES表示要啟用chroot_list_file, 因為chroot_local_user=YES,即全體使用者都被“限定在主目錄内”,是以總是作為“例外清單”的chroot_list_file這時列出的是那些“不會被限制在主目錄下”的使用者。
方法3.
chroot_local_user=NO
chroot_list_enable=YES
/etc/vsftpd/chroot_list //會被限制的使用者
解釋:chroot_local_user=NO則所有使用者不被限定在主目錄内,chroot_list_enable=YES表示要啟用chroot_list_file, 因為chroot_local_user=NO,即全體使用者都“不被限定在主目錄内”,是以總是作為“例外清單”的chroot_list_file這時列出的是那些“會被限制在主目錄下”的使用者。
vsftpd本地使用者登入密碼錯誤的解決方法(不建議開啟本地使用者登入)
解決方式是将vsftp.conf中的:
pam_service_name=vsftpd
修改成
pam_service_name=ftp
重新開機vsftpd後本地使用者正常登入。
聚石塔vsftpd配置項
pasv_enable=<YES/NO> :是否使用被動模式的資料連接配接,如果客戶機在防火牆後,請開啟為YES
pasv_min_port=<n>
pasv_max_port=<m> :設定被動模式後的資料連接配接端口範圍在n和m之間,建議為50000-60000端口(聚石塔端口号為30001-30005)