前言:
vsftpd有三種用户模式:匿名用户、本地用户、虛擬用户
匿名用户就是不需要密碼就能對ftp進行訪問,本地用户是使用/etc/passwd中記錄的系統用户作為ftp用户來訪問ftp服務,而虛擬用户是專屬於vsftpd的用户,他們映射在一個本地用户上,便於控制權限,比本地用户登錄更安全。
在主配置文件中開啓虛擬用户登錄:
編輯vsftpd主配置文件
vim /etc/vsftpd/vsftpd.conf
在文件結尾添加如下三行:
guest_enable=YES開啓虛擬用户登錄 guest_username=ftp設置ftp(安裝vsftpd時默認創建)用户為虛擬用户在操作系統上的映射 user_config_dir=/etc/vsftpd/vu_conf設置用於保存虛擬用户個性配置文件的目錄(目錄名隨便)
創建用户信息數據庫
創建並編輯用於保存虛擬用户賬户名和密碼的文本文件,文件名隨意。
vim /etc/vsftpd/vu
在其中添加虛擬用户登錄名和 密碼,登錄名為奇數行號,密碼為偶數行號。
test1 #賬户 12345678 #密碼 test2 #賬號 87654321 #密碼
生成用户信息數據庫文件(其中記錄的就是虛擬用户的賬户名和密碼)
db_load -T -t hash -f /etc/vsftpd/vu /etc/vsftpd/vu.db
配置pam認證
編輯pam中關於ftp用户認證的配置,pam是用於認證用户及授權用户訪問服務的一套東東。
vim /etc/pam.d/vsftpd
在文件開頭添加兩條新內容:
auth sufficient pam_userdb.so db=/etc/vsftpd/vu #這個文件其實就是我們之前創建的用户數據庫文件,不過注意這裏一定不要加上db,否則會登錄不了的。具體原因是pam在打開數據庫文件時會自動在後面增加.db後綴,如果之前已經加了就找不到文件了。 account sufficient pam_userdb.so db=/etc/vsftpd/vu
創建並編輯虛擬用户的個性配置文件
創建用於存放虛擬用户個性配置文件的目錄
mkdir /etc/vsftpd/vu_conf
創建並編輯test1用户的個性配置文件(文件名必須和用户名相同)
vim /etc/vsftpd/vu_conf/test1
添加個性配置(若不添加則使用全局配置,對權限的控制請使用匿名用户的控制選項,如anon_mkdir_write=NO,禁止此虛擬用户創建目錄):
local_root=/ftp/test1 #設置用户的ftp目錄,如果不設置則使用宿主賬號的ftp目錄
vsftp配置文件中各個選項的中文註釋參考此篇文章。
創建虛擬用户的FTP家目錄
創建test1用户的家目錄。
mkdir -p /ftp/test1 chown -R ftp:ftp /ftp
收尾:
在確保SELinux和防火牆均已正確配置後,重啓vsftpd服務。
service vsftpd restart
最後使用ftp客户端測試連接,推薦使用FileZilla。
等等 可以用了 我多加了個空格 不用回覆了
db_load -T -t hash -f /etc/vsftpd/vu /etc/vsftpd/vu.db
大佬這條指令好像不能用了 我去百度db_load怎麼用出現的還是用這些參數
我輸入之後直接説參數錯誤
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vmuser /etc/vsftpd/vmuser .db
usage: db_load [-nTV] [-c name=value] [-f file]
[-h home] [-P password] [-t btree | hash | recno | queue] db_file
usage: db_load -r lsn | fileid [-h home] [-P password] db_file