轉載https://blog.csdn.net/jiance520/article/details/85705816
在網上看了一些别人的筆記,很多不适合新手看,結果各種問題,不是代碼錯誤,就是省略了一些步驟。最後自己整了幾天才把常用的功能整理完,包括使用虛拟使用者來配置設定不同使用者的權限。不過還是要感謝前人的筆記。
目錄
準備
安裝vsftpd伺服器
建立系統使用者
修改配置檔案(重點)
/etc/vsftpd/vsftpd.conf 核心配置檔案
vim /etc/vsftpd/user_list 白名單
vim /etc/vsftpd/chroot_list無限制名單
建立/添加/删除虛拟使用者
連接配接FTP伺服器
Xftp或 FlashFXP連接配接FTP
xftp 提示無法顯示遠端檔案夾:
使用者身份驗證失敗:
如果需要截圖部分的代碼,請到這裡下載下傳。https://download.csdn.net/download/jiance520/10894330
vsftpd.conf部分常用參數說明:https://mp.csdn.net/postedit/85723550。
準備
使用環境是阿裡雲ECS伺服器,系統CentOS7
所有操作是在關閉防火牆的情況下示範,如果你的伺服器很重要,請不要關閉。
systemctl stop firewalld
重新整理防火牆:iptables -F。
阿裡雲ECS開放相關端口。54301:54305端口你自己定義。用于pasv被動模式的資料傳輸。這是很多人容易忽略的步聚。

如果伺服器不在阿裡雲,如在本機,請執行以下操作開放端口。
A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
A INPUT -m state --state NEW -m tcp -p tcp --dport 54301:54305 -j ACCEPT
檢查SElinux狀态并關閉,SElinux是 Linux 的一個本機安全性授權。
getsebool -a|grep ftp
如果沒有關閉, 把 SELINUX=SeLinux 改為SELINUX=disable。
vim /etc/sysconfig/selinux
安裝vsftpd伺服器
檢查是否已經安裝vsftpd
rpm -qa| grep vsftpd
如果沒有安裝,執行yum安裝
yum -y install vsftpd
啟動vsftpd
systemctl start vsftpd
檢視vsftpd服務的狀态
systemctl status vsftpd
設定vsftpd服務開機自啟
systemctl enable vsftpd
建立系統使用者
useradd ftpuser3
passwd ftpuser3指定密碼123456。密碼你自己寫。
passwd ftpuser3
給建立的使用者檔案夾授權,預設是/home/ftpuser3
chmod 777 -R /home/ftpuser3
如果要修改主目錄,把/home/ftpuser3改成你自己指定的目錄
usermod -d /home/ftpuser3
修改配置檔案(重點)
主要配置檔案:
/etc/vsftpd/vsftpd.conf 核心配置檔案
/etc/vsftpd/user_list 白名單,裡面存放允許登陸ftp的賬号,一行一個賬号名,如果不想讓某個賬号登陸ftp,就别填那個賬号進來。
/etc/vsftpd/ftpusers 黑名單,和清單,user_list差不多,可以忽略。
/etc/vsftpd/chroot_list無限制名單:指定其中的使用者允許登和通路主目錄和上級目錄(前提是chroot_list_enable=NO)。 反過來,不在這裡面的使用者隻能通路自己的主目錄。
/etc/pam.d/vsftpd PAM接口配置檔案
/var/ftp 匿名使用者的工作目錄
/etc/vsftpd/vsftpd.conf 核心配置檔案
所有配置檔案的修改,請自行備份,備份:cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
修改配置檔案,并:wq儲存退出。
vim /etc/vsftpd/vsftpd.conf
以下為我修改後的内容,如需要匿名通路,請改anonymous_enable=YES。
pasv_address=xxx.xxx.xxx.xxx填寫你自己的ECS虛拟主機IP。
vim /etc/vsftpd/user_list 白名單
增加使用者,由你自己決定是否增加匿名使用者,如果啟用了user_list,必須添加建立的使用者ftpuser3
ftp
anonymous
ftpuser3
vim /etc/vsftpd/chroot_list無限制名單
增加以下使用者
ftpuser3
修改配置以後,必須重新開機ftp。
systemctl restart vsftpd
如果啟動失敗,提示錯誤:Job for vsftpd.service failed because the control process exited with error,Failed to start Vsftpd ftp daemon,vsftpd,99%是你的vsftpd.conf中代碼錯誤,亂碼等。
還有一些其它原因,中文亂碼^M,格式問題。
建立/添加/删除虛拟使用者
虛拟使用者對系統更安全。可以針對不同的使用者指定不同的工作目錄。
首先檢視compat-db
rpm -qa| grep compat-db
如果沒有,執行安裝
yum install -y compat-db
修改使用者配置檔案
vim /etc/vsftpd/ftpuser.conf
添加,第一行使用者名,第二行密碼
ftpuser3
123456
根據虛拟使用者配置檔案ftpuser.conf生成ftpuser.db檔案
db_load -T -t hash -f /etc/vsftpd/ftpuser.conf /etc/vsftpd/ftpuser.db
修改pam
vim /etc/pam.d/vsftpd
建立/配置虛拟使用者權限配置檔案,指定虛拟使用者操作的目錄,以及所擁有的操作權限。
建立使用者配置檔案目錄
mkdir /etc/vsftpd/virconf
建立并編輯使用者ftpuser3配置檔案
vim /etc/vsftpd/virconf/ftpuser3
根據自己的情況,指定虛拟使用者ftpuser3通路目錄,并擁有以下指定的權限。
我們可以重複建立多個不同的虛拟使用者,共用一個宿主使用者ftpuser3
最後别忘記建立白名單使用者
vim /etc/vsftpd/chroot_list
之前我們在在user_list中添加了使用者ftpuser3,如果我們需要使用者擁有更大的通路權限,請在chroot_list中也添加ftpuser3。
連接配接FTP伺服器
Xftp或 FlashFXP連接配接FTP
最後就是我們可以在Xftp或 FlashFXP上配置自己的host:xxx.xxx.xxx.xxx主機IP位址和端口21,使用ftp方式通路FTP伺服器。遠端檔案夾目錄填寫你的主目錄,如:/home/ftpuser3
也可以在我的電腦上添加一個網絡位置。來通路FTP。還可以在IDEA上配置。
xftp 提示無法顯示遠端檔案夾:
xftp遠端檔案夾目錄填寫跟local_root=/home/ftpuser3不一緻,沒有通路權限。
如果配置沒有錯誤,有該提示,并不影響操作,如果要去掉,可以在chroot_list中也添加ftpuser3,但是會增加使用者的通路權限。
使用者身份驗證失敗:
沒有生成db資料檔案。或資料檔案ftpuser.db中沒有該帳戶。
使用者名或密碼錯誤。
其主目錄檔案夾沒有建立。或指定的主目錄不一緻。
防火牆攔截,沒有開放端口。
沒有使用pasv被動模式。
檔案夾沒有授權chmod 777 -R
帳戶沒有加入user_list
allow_writeable_chroot=YES
沒有重起更新修改。
一定要記得,修改虛拟使用者密碼或新增虛拟使用者後要再次執行生成資料檔案ftpuser.db,修改vsftpd.conf要記得重起。或者reboot重新開機系統,關閉防火牆。
db_load -T -t hash -f /etc/vsftpd/ftpuser.conf /etc/vsftpd/ftpuser.db
systemctl restart vsftpd